1
創建多個行我有一個名爲Test1的表如下:分區通過使用與分裂值在SQL
A B C
One ABC,DEF,GHI,JKL 4
Two AAA,GGG,RTG 3
Three A,B,C,D 4
One 0
Two TE,YT 2
我想輸出像以下:
A B C
One ABC 6
One DEF 6
One GHI 6
One JKL 6
One 6
Three A 4
Three B 4
Three C 4
Three D 4
Two 7
Two AAA 7
Two GGG 7
Two RTG 7
我嘗試以下查詢,但我得到分區的輸出問題。
SELECT A,SUM(C) OVER (PARTITION BY A),left(d, charindex(',', d + ',')-1) as "B" from
(SELECT *, substring(B, number, 3000) as d from Test1 A left join
(SELECT distinct number from master.dbo.spt_values where number between 1 and 200) B
on substring(',' + B, number, 1) = ',') t
使用上述我獲得以下:
A C B
One 18 ABC
One 18 DEF
One 18 GHI
One 18 JKL
One 18
Three 16 A
Three 16 B
Three 16 C
Three 16 D
Two 13
Two 13 AAA
Two 13 GGG
Two 13 RTG
我試圖創建用於在列B中的多個條目的行分隔用逗號和根據所述組還添加第C列的值。 任何幫助將非常可觀。
你想'SUM(1)OVER(PARTITION BY A)',而不是'SUM(C)'。或者,'COUNT(*)OVER ...'而不是'SUM(1)OVER ...'。 – ZLK
我試過了,但沒有工作:| –