[英]How many schemas (Limit) can I use in an instance of a SQL Server database and in Oracle?
[英]Can I use LIMIT N,M on SQL Server database
我有以下SQL语句:
SELECT [id], [name]
FROM [dbo.test_db_002] t1
LEFT JOIN [dbo.test_db_003] t2 ON t1.[id] = t2.[itmid]
ORDER BY t2.[iid] ASC;
这似乎很简单,但我无法弄清楚。 我需要在其中添加LIMIT N,M
来从第N个项目中检索M个项目,但是我在'limit'单词周围一直遇到错误。 我试图将LIMIT
子句放在上面的sql语句中的任何地方,但无济于事。
PS。 我正在写VS2010附带的SQL Server。
要回答您的查询,您可能需要:(取决于您的M
和N
值)
WITH cte AS
(
SELECT [id], [name], ROW_NUMBER() OVER (ORDER BY t2.[iid] ASC) AS rowNumber
FROM [dbo.test_db_002] t1
LEFT JOIN [dbo.test_db_003] t2 ON t1.[id] = t2.[itmid]
)
SELECT [id], [name]
FROM cte
WHERE rowNumber BETWEEN 3 AND 5
需要注意的是,介于两者之间的值介于BETWEEN N AND N + M
另外,这是一个链接,其中包含有关公用表表达式的信息,这是我使用的WITH cte
语法。
在SQL Server中没有与LIMIT N,M
直接等效的方法,但是您可以执行以下操作:
SELECT * FROM
(SELECT *, ROW_NUMBER() OVER (ORDER BY name) as row FROM MyTable) a
WHERE row > 5 and row <= 10
有关更多信息,请参见此处: SQL Server中的“ LIMIT”
您可以使用Row_Number()
例:
select * from
(
select cola, colb, row_number() over (order by col1 desc) as row
from table ) x
where row between value1 and value2
在SQL Server 2012中具有偏移量的限制:
SELECT email FROM myTable
OFFSET 10 ROWS
FETCH NEXT 10 ROWS ONLY;
//偏移量-不。 跳过的行数
// next-不需要 下一行
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.