sql – 返回特定范围之间的行,并带有一个select语句
发布时间:2020-05-23 12:14:13 所属栏目:MsSql 来源:互联网
导读:我正在寻找一些这样的表达(使用SQL Server 2008) SELECT TOP 10 columName FROM tableName 但是,而不是我需要10到20之间的值.我想知道是否有一种方法只使用一个SELECT语句. 例如这是没用的: SELECT columName FROM(SELECT ROW_NUMBER() OVER(ORDER BY someId
|
我正在寻找一些这样的表达(使用SQL Server 2008) SELECT TOP 10 columName FROM tableName 但是,而不是我需要10到20之间的值.我想知道是否有一种方法只使用一个SELECT语句. 例如这是没用的: SELECT columName FROM (SELECT ROW_NUMBER() OVER(ORDER BY someId) AS RowNum,* FROM tableName) AS alias WHERE RowNum BETWEEN 10 AND 20 因为选择内部的括号已经返回所有的结果,我期待避免,由于性能. 解决方法row_number有一个技巧,它不涉及排序所有的行.尝试这个: SELECT columName
FROM (SELECT ROW_NUMBER() OVER(ORDER BY (select NULL as noorder)) AS RowNum,*
FROM tableName
) as alias
WHERE RowNum BETWEEN 10 AND 20
你不能按顺序使用常数.但是,您可以使用一个计算为常量的表达式. SQL Server可以识别这一点,只返回遇到的行,并正确枚举. (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
