Oracle:使用“ order by”子句显示行号
技术问答
714 人阅读
|
0 人回复
|
2023-09-14
|
我想知道如何在使用order的情况下为sql语句打印行号。目前,我尝试过,ROWNUM但据我了解,它仅适用于未排序的结果集。
# h$ Q4 C& n3 y; {. P" P; [6 kSELECT rownum, a.lg_id, a.full_name, a.sort_order4 e7 a3 _6 L+ L- B) S: B( T. g* f% f
FROM activity_type_lang a
- S/ d( R$ o+ e9 Y& c5 D where a.lg_id = 'en'
' ^; y7 {& X. ]+ b order by a.full_name;8 k: R4 b' I% F5 a, w. [
TIA
0 C. S; N9 e$ V+ p0 w" q! H& T
: P4 M0 U2 z. ?: m$ n0 {2 Y% f解决方案:% H, d5 P! S% E1 e" ^
+ U3 W0 `9 r' t9 K; d" }$ P( S* R5 I
( a2 a5 A" k0 y5 V3 Q6 }' ^! h: A 除了嵌套查询之外,您还可以使用解析函数6 L9 S- I% g9 T
SELECT row_number() OVER (ORDER BY a.full_name),: Y& N* R- r; Z5 n2 V7 \
lg_id,
$ C, ^- y! v9 o4 w" T, q) i full_name,) M8 Q3 m# [) A. I
sort_order( y# X+ R' h& d) g4 Y6 B" E) R
FROM activity_type_lang a
8 K& W0 a2 P5 E! _ WHERE a.lg_id = 'en'7 g w* z2 g& h5 @8 q
ORDER BY a.full_name
0 y5 b) z4 r' ~4 u3 X5 U# ~! m4 @如果要更改联系的处理方式,使用分析功能还可以使工作更加轻松。您可以ROW_NUMBER用RANK或替换DENSE_RANK。 |
|
|
|
|
|