2015年6月28日 星期日

SQL練習:CASE

PTT DataBase版 #192AKCJG

table:
name  A  B
1         1  3
2         3  3
3         2  2
4         1  4
5         5  2
6         5  4
7         3  2

假設原始資料為上表
我想將找出A跟B欄位值相同的為一群組
根據A,B欄位值的大小~以群組由大至小排序的即結果希望如下~

result table:(--# 數字相同帶表同群組)
name  A  B
6         5  4  -- 5
5         5  2  -- 5
4         1  4  -- 4
2         3  3  -- 3
7         3  2  -- 3
1         1  3  -- 3
3         2  2  -- 2


 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
--建立測試資料表
CREATE TABLE AA
	(
	NAME nchar(10) NULL,
	A int NULL,
	B int NULL
	)  ON [PRIMARY]
	
	insert into AA (NAME,A,B) values ('1',1,3)
	insert into AA (NAME,A,B) values ('2',3,3)
	insert into AA (NAME,A,B) values ('3',2,2)
	insert into AA (NAME,A,B) values ('4',1,4)
	insert into AA (NAME,A,B) values ('5',5,2)
	insert into AA (NAME,A,B) values ('6',5,4)
	insert into AA (NAME,A,B) values ('7',3,2)

解法

1
2
3
select *
from AA
order by (case when A>B then A else B end) desc ,B desc

沒有留言:

張貼留言