Возможный дубликат:
Как написать (MySQL) "LIMIT" в SQL Server?
Как я могу изменить свой запрос с помощью LIMIT Inside для SQL-Server?
Код:
SELECT apretiz FROM tableApoint WHERE price = '$newprice' LIMIT 5;
Многие вещи не работают, поэтому просто просите о помощи
И как я могу изменить LIMIT 5,10 на примере? Не могу ли я использовать TOP для этого?
Ответ 1
Как я сказал, это менее часа назад, вы должны использовать TOP! (LIMIT используется для MYSQL)
Поэтому попробуйте удалить LIMIT 5
и сделайте SELECT TOP(5) apretiz
.
Также попробуйте добавить порядок (по той же причине, что и раньше).
Пожалуйста, сделайте поиск, прежде чем задавать вопросы. Ссылка на старый вопрос
Ответ 2
Начиная с SQL Server 2012, вы можете написать
...
ORDER BY thisColumn, thatColumn
OFFSET 5 ROWS FETCH NEXT 5 ROWS ONLY
Ответ 3
Используйте ключевое слово TOP
:
SELECT TOP 5 pretiz
FROM tableApoint WHERE price = '$newprice'
Использование LIMIT 5, 10 не является частью стандарта SQL и доступно только в MySQL.
Вы можете использовать ROW_NUMBER()
для SQL в качестве временного решения и получите желаемый результат.
SELECT * FROM (
SELECT *, ROW_NUMBER() OVER (ORDER BY name) as row FROM tableApoint
) a WHERE row >= 5 and row <= 10
Ответ 4
SQL Server 2005 и выше
Если вы используете SQL Server 2005 и выше, вы можете использовать функцию ROW_NUMBER
для назначения уникальных номеров вашим строкам, а затем выбрать диапазон значений из вывода.
Автор сценария:
CREATE TABLE table1
(
textvalue VARCHAR(10) NOT NULL
);
INSERT INTO table1 (textvalue) VALUES
('i'),
('a'),
('e'),
('h'),
('c'),
('l'),
('g'),
('m'),
('d'),
('k'),
('j'),
('f'),
('b'),
('n');
;WITH letters as
(
SELECT textvalue
, ROW_NUMBER() OVER(ORDER BY textvalue) rownum
FROM table1
)
SELECT textvalue
FROM letters
WHERE rownum BETWEEN 6 AND 10;
Вывод:
TEXTVALUE
---------
f
g
h
i
j