假設是你使用MySQL(此標記先行在你的問題)。
你在找這樣的事嗎?
SELECT col1,
MIN(CASE WHEN rnum = 1 THEN id END) id1,
MIN(CASE WHEN rnum = 1 THEN col2 END) col21,
MIN(CASE WHEN rnum = 2 THEN id END) id2,
MIN(CASE WHEN rnum = 2 THEN col2 END) col22
FROM
(
SELECT t.*, @n := IF(@g = col1, @n + 1, 1) rnum, @g := col1
FROM Table1 t, (SELECT @n := 0) i
ORDER BY col1, id
) q
GROUP BY col1
輸出示例:
| COL1 | ID1 | COL21 | ID2 | COL22 |
-----------------------------------------
| apartment | 43 | zorro | 89 | mula |
| casa | 4 | perro | 12 | gato |
| roor | 19 | sapo | 31 | mouse |
這裏是SQLFiddle演示
現在,您可以採取不同的方法,並與CONCAT()
和GROUP_CONCAT()
包id
和col2
值,使用不同的分隔符,分成一列(我們稱它爲details
)。然後在迭代結果集的同時在客戶端上使用explode
。
SELECT col1, GROUP_CONCAT(CONCAT(id, '|', col2)) details
FROM Table1
GROUP BY col1
輸出示例:
| COL1 | DETAILS |
--------------------------------
| apartment | 89|mula,43|zorro |
| casa | 4|perro,12|gato |
| roor | 31|mouse,19|sapo |
下面是SQLFiddle演示
什麼數據庫您使用的?這被標記爲MySQL和Oracle。 –
你在問什麼?這個問題不清楚。?這是什麼?'我有2每個元素,我有2 CASA,2公寓,2 ROOR'具體和技術,而你問這個問題。 –