如何使用 LIMIT Inside 为 SQL-Server 更改我的查询?
代码:
SELECT apretiz FROM tableApoint WHERE price = '$newprice' LIMIT 5;
很多事情都不起作用,所以只是寻求帮助
以及如何通过示例更改 LIMIT 5,10 ?我不能用 TOP 吗?
如何使用 LIMIT Inside 为 SQL-Server 更改我的查询?
代码:
SELECT apretiz FROM tableApoint WHERE price = '$newprice' LIMIT 5;
很多事情都不起作用,所以只是寻求帮助
以及如何通过示例更改 LIMIT 5,10 ?我不能用 TOP 吗?
从 SQL Server 2012 开始,您可以编写
...
ORDER BY thisColumn, thatColumn
OFFSET 5 ROWS FETCH NEXT 5 ROWS ONLY
正如我不到一小时前所说,您必须使用 TOP !(LIMIT 用于 MYSQL)
所以尝试删除LIMIT 5
并执行SELECT TOP(5) apretiz
.
另外,尝试添加顺序(与以前相同的原因)。
请在询问之前进行搜索。链接到旧问题
使用TOP
关键字:
SELECT TOP 5 pretiz
FROM tableApoint WHERE price = '$newprice'
使用 LIMIT 5、10 不是 SQL 标准的一部分,仅在 MySQL 中可用。
您可以将ROW_NUMBER()
for SQL 用作临时解决方案,并将获得相同的所需输出。
SELECT * FROM (
SELECT *, ROW_NUMBER() OVER (ORDER BY name) as row FROM tableApoint
) a WHERE row >= 5 and row <= 10
如果您使用的是 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