1. 程式人生 > >SQL 特殊查詢例項 分組、編號、排序、行號

SQL 特殊查詢例項 分組、編號、排序、行號

在資料庫查詢操作的時候,經常會遇到一些特殊的資料提取,比如按某些條件分組後,在組內排序附加租序號等等。

不多說直接上SQL:

表 TableName{A,B,C,D}

TableName

A   B   C   D
a   1   a1  b1
b   1   a2  b1
c   2   a1  b2
a   2   a2  b1
b   1   a1  b1

------------------------------------------------------------------------------------------------------------------------------------------
DB2:

     --分組查詢,組內排序新增序號

     SELECTrank() over(partition BY t.A,t.B ORDER BY t.Cdesc ) son , t.* FROM TableName t ;

結果:

son   A   B   C   D
1      a   1   a1  b1
2      a   2   a2  b1
1      b   1   a2  b1
2      b   1   a1  b1
1      c   2   a1  b2

      --為查詢結果新增序號,行號。

     SELECT rownumber() over (ORDER BY t.A) son ,t.* FROM TableName t ;

結果:

son A   B   C   D

1    a   1   a1  b1
2   a   2   a2  b1
3   b   1   a1  b1
4   b   1   a2  b1
5   c   2   a1  b2

--