如何使用LIMIT Inside为SQL-Server更改查询?
代码:
SELECT apretiz FROM tableApoint WHERE price = '$newprice' LIMIT 5;
很多事情都没有起作用所以只是寻求帮助
我怎么能通过例子改变LIMIT 5,10?我不能用TOP吗?
答案 0 :(得分:21)
从SQL Server 2012开始,您可以编写
...
ORDER BY thisColumn, thatColumn
OFFSET 5 ROWS FETCH NEXT 5 ROWS ONLY
答案 1 :(得分:16)
正如我在不到一小时前说的那样,你必须使用TOP! (LIMIT用于MYSQL)
因此,请尝试删除LIMIT 5
并执行SELECT TOP(5) apretiz
。
另外,尝试按顺序添加顺序(原因与以前相同)。
请在询问之前进行搜索。 Link to old question
答案 2 :(得分: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
答案 3 :(得分:2)
如果您使用的是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