回答

收藏

使用Row_Number()选行子集

技术问答 技术问答 291 人阅读 | 0 人回复 | 2023-09-14

Select id,name,ROW_NUMBER() OVER (ORDER BY id asc) as ‘RowNo’
5 ^" o- ^7 i. e$ f9 z) X, f& V                from customers
! O, P5 }/ u8 \+ T8 q                where RowNo between 50 AND 609 H6 K" ~( h7 E% m2 f5 D
我试着选择50到60行的子集。问题是 RowNo列名无效。
9 e: Y3 R2 t. s$ @! }; g9 t谢谢, P7 g4 [  ]: `* s
使用SQL SERVER 2008 R22 ~: |- A7 t! g4 I
                                                               
2 J7 ]8 t, H% y6 T, j9 t! g; n    解决方案:                                                               
8 R$ v) I) N, J7 }) c- \+ M. M/ R                                                                使用您的查询作为以下子查询:
5 I$ G  N7 T/ D# b! [6 }. F* Jselect * from  Select id,name,ROW_NUMBER() OVER (ORDER BY id asc) as [RowNo]    from customers) twhere RowNo between 50 AND 60也可使用CTE,但是要不要选一个?CTE和SubQuery两者的区别?并检查执行计划。
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则