CSDN SQL版常見問題之二 行轉列

2021-05-08 03:34:47 字數 1443 閱讀 5824

--建立測試環境

create table test

(orderid int identity (1, 1),

id int,

type varchar(10),

score int )

--插入資料

insert test select 1, 'a', 100

union all select 1, 'b', 90

union all select 2, 'a', 80

union all select 2, 'b', 85

union all select 2, 'c', 92

union all select 3, 'a', 87

go--測試

--察看原表資料

select * from test

--如果type是固定的

--寫出固定情況下的語句,是希望能幫助大家更好的理解動態sql語句

--下面exec(@s)中執行即為此語句

select

id,sum(case when type = 'a' then score else 0 end) as a,

sum(case when type = 'b' then score else 0 end) as b,

sum(case when type = 'c' then score else 0 end) as c

from

test

group by

id--如果type不是固定的,使用動態sql語句

--定義變數

declare @s varchar(8000)

--賦初值,此句不能少

select @s = ''

--從表中迴圈得到type,並使用type拼結語句

select @s = @s + ', sum (case when type = ''' + type + ''' then score else 0 end) as ' + type

from test group by type

--拼結成完整的語句

select @s = 'select id' + @s + ' from test group by id'

--執行動態sql語句

exec(@s)

go--刪除測試環境

drop table test

--結果

/*--表中原來資料

orderid id type score

1  1 a 100

2  1 b 90

3  2 a 80

4  2 b 85

5  2 c 92

6  3 a 87

--實現效果

id a b c

1 100 90 0

2 80 85 92

3 87 0 0

*/

CSDN SQL版常見問題之四 行列互換

建立測試環境 create table test id int,a int,b int,c int 插入資料 insert test select 1,100,90,0 union all select 2,80,85,92 union all select 3,87,0,0 go 測試 察看原表資...

Exchange 常見問題之二 1

1.如何重建手機與exchange伺服器的同步關係?請參照以下文件 2.手機與exchange伺服器同步時,出現錯誤 0x85010004,如何進行排錯?當用手機與exchange伺服器同步時,在手機上收到以下錯誤 您的帳戶沒有同步您的當前設定的許可權。請與 microsoft exchange 管...

Top K系列問題之二 常見問題

或者如下闡述 演算法思想 分而治之 hash 1.ip位址最多有2 32 4g種取值情況,所以不能完全載入到記憶體中處理 2.可以考慮採用 分而治之 的思想,按照ip位址的hash ip 1024值,把海量ip日誌分別儲存到1024個小檔案中。這樣,每個小檔案最多包含4mb個ip位址 3.對於每乙個...