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

--

你可能感兴趣的:(SQL,语句)