这是一条 MySQL 查询语句
SELECT email FROM emailTable LIMIT 9,20 WHERE id=3
在SQL Server(2008)中如何编写?我需要写吗?
SELECT TOP 9,20 email FROM emailTable WHERE id=3
? Thank you for your help
这是一条 MySQL 查询语句
SELECT email FROM emailTable LIMIT 9,20 WHERE id=3
SELECT TOP 9,20 email FROM emailTable WHERE id=3
? Thank you for your help
试试这个:
SELECT *
FROM
(
SELECT *,
ROW_NUMBER() OVER (ORDER BY email) as rowNum
FROM tableName
) sub
WHERE rowNum > 9
AND rowNum <= 9 + 20
AND id = 3
LIMIT offset, rowcount
。这意味着你必须执行 rownum > offset and rownum <= offset + rowcount
。 - Lukas Eder;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
修改为一句话:
SELECT *
FROM
(
SELECT ROW_NUMBER() OVER (ORDER BY YourColumn ASC) AS RowNo,
email
FROM emailTable
) x
WHERE x.RowNo BETWEEN 1 AND 10
在SQL Server中使用偏移量限制:
SELECT email FROM emailTable WHERE id=3
OFFSET 8 ROWS
FETCH NEXT 12 ROWS ONLY;
//偏移量 - 跳过的行数
//下一个 - 需要的下几行数据
更新:此代码适用于SQL Server 2012及以上版本。