File tree Expand file tree Collapse file tree 1 file changed +34
-0
lines changed Expand file tree Collapse file tree 1 file changed +34
-0
lines changed Original file line number Diff line number Diff line change
1
+ SQL开发技巧(二)
2
+ 内容介绍:
3
+ 1.如何进行行列转换
4
+ 2.如何生成唯一序列号
5
+ 3.如何删除重复数据
6
+
7
+ ********************************************************************************
8
+ 需要进行行转列的场景:报表统计、汇总显示
9
+
10
+ ********************************************************************************
11
+ 行转列:
12
+ 利用自身连接来实现:
13
+ SELECT *
14
+ FROM (
15
+ SELECT SUM(KILLS) AS 'A'
16
+ FROM A INNER JOIN B ON A.NAME=B.USER_NAME
17
+ WHERE A.NAME='A') AS A CROSS JOIN(
18
+ SELECT SUM(KILLS) AS 'B'
19
+ FROM A INNER JOIN B ON A.NAME=B.USER_NAME
20
+ WHERE A.NAME='B') AS B CROSS JOIN(
21
+ SELECT SUM(KILLS) AS 'C'
22
+ FROM A INNER JOIN B ON A.NAME=B.USER_NAME
23
+ WHERE A.NAME='C')AS C;
24
+
25
+ 比如成绩
26
+ 1、分别查询出不同同学的成绩,并将字段名改为同学的名字
27
+ 2、通过交叉连接,将不同的语句连接起来
28
+
29
+ 缺点:是将原来查询的结果每一行单独查询出来,再进行拼接。
30
+ 因此每增加一个同学就增加一个SELECT语句。并且是通过交叉连接,要保证每个查询的结果只能是一个,不然没办法通过交叉连接实现转换。
31
+
32
+
33
+
34
+
You can’t perform that action at this time.
0 commit comments