我有這個表有問題,編寫SQL查詢2008
1 a d
1 a e
2 b f
2 b g
3 c h
3 c i
3 c j
3 c k
,我想這個結果
1 a d,e
2 b f,g
3 c h,I,j,k,l
我有這個表有問題,編寫SQL查詢2008
1 a d
1 a e
2 b f
2 b g
3 c h
3 c i
3 c j
3 c k
,我想這個結果
1 a d,e
2 b f,g
3 c h,I,j,k,l
據我所知,SQL-Server已在方式這樣做沒有內置,但你可以利用FOR XML
的這樣做:
SELECT
t1.col1,
t1.col2,
STUFF((
SELECT ', ' + t2.col3
FROM Table1 t2
WHERE t2.col1 = t1.col1
FOR XML PATH (''))
,1,2,'') AS Groups
FROM Table1 t1
GROUP BY t1.col1, col2;
這會給你:
| COL1 | COL2 | GROUPS |
----------------------------
| 1 | a | d, e |
| 2 | b | f, g |
| 3 | c | h, i, j, k |
然而, MySQL有一個內置的功能,GROUP_CONCAT()
:
SELECT
col1, col2, GROUP_CONCAT(col3 SEPARATOR ',') groups
FROM Table1
GROUP BY col1, col2;
也許你的意思是'SELECT col1,MAX(col2),GROUP_CONCAT(col3 SEPARATOR',')groups'? –
@JW。對不起,我錯過了,示例數據格式不正確,我沒有看到,我認爲'col3 GROUP BY col1,col2'的SELECT col1,col2,GROUP_CONCAT就足夠了。謝謝。 –
格式化沒有問題,我已經通過查詢幫助解決了這個問題。謝謝你很棒。 –
難道這看起來像一個真正的問題? – Haris
你有什麼專欄?是「1個d,e」一列還是3列或4列? –