这是一个mysql查询
SELECT email FROM emailTable LIMIT 9,20 WHERE id=3
如何在SQL Server(2008)中编写它?
我必须写
SELECT TOP 9,20 email FROM emailTable WHERE id=3
? 谢谢你的帮助
答案 0 :(得分:6)
试试这个:
SELECT *
FROM
(
SELECT *,
ROW_NUMBER() OVER (ORDER BY email) as rowNum
FROM tableName
) sub
WHERE rowNum > 9
AND rowNum <= 9 + 20
AND id = 3
答案 1 :(得分:2)
您可以使用ROW_NUMBER()来获得相同的结果。
e.g。获取第1行到第10行:
;WITH results AS
(
SELECT ROW_NUMBER() OVER (ORDER BY YourColumn ASC) AS RowNo,
email
FROM emailTable
)
SELECT *
FROM results
WHERE RowNo BETWEEN 1 AND 10
修改强> 浓缩为1声明:
SELECT *
FROM
(
SELECT ROW_NUMBER() OVER (ORDER BY YourColumn ASC) AS RowNo,
email
FROM emailTable
) x
WHERE x.RowNo BETWEEN 1 AND 10
答案 2 :(得分:1)
在sql server中限制偏移量:
SELECT email FROM emailTable WHERE id=3
OFFSET 8 ROWS
FETCH NEXT 12 ROWS ONLY;
// offset - no。跳过的行
// next - 要求不。下一行
更新:这是有效的,但是sql server 2012以后