我如何避免嵌套此查询。我认为它会使查询肿,并使阅读变得困难。我知道我可以放在Row_number() OVER (ORDER BY id ASC)
该where
子句中,但是有办法解决吗?
SELECT *
FROM (SELECT [id],
[title],
[image],
[description],
[column5154],
[column5155],
[column5156],
RowNumber1 = Row_number() OVER (ORDER BY id ASC)
FROM [TestTable] x
WHERE x.rownumber1 % 5 = 0
如果您希望每隔第五行,不必在乎RowNumber1
,也不想使用子查询,则可以执行以下操作:
select top (20) percent t.*
from testtable t
order by row_number() over (order by id asc)) % 5;
允许使用窗口功能order by
。就个人而言,我认为子查询更容易理解。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句