2010-08-30 150 views
2

我有一個表:轉換SQL行成列

A B  c 
a1 1  a11 
a1 2  a12 
a1 3  a13 
a2 1  a21 
a2 2  a22 
a2 3  a23 

,我想將其轉換爲:

A  C1  C2  C3 
a1 a11 a12 a13 
a2 a21 a22 a23 

我如何寫一個SQL查詢來實現這一點......我不想將我的表格轉換爲csv並使用python並執行它...

+0

只是爲了澄清一些。您是否想根據B列中的值將C列分成多列?您是試圖替換第一個表格設計還是試圖編寫一個查詢來保留第一個表格設計,但是爲第二個表格設計拉取值? – 2010-08-30 15:18:54

+0

我想用這種設計觀察桌子。 – 2010-08-30 15:23:40

+0

看看['如何將行轉換爲列'](http://stackoverflow.com/questions/3120835/how-to-pivot-rows-into-columns-custom-pivoting)。 – 2010-08-30 15:16:08

回答

2
SELECT A, 
MAX(CASE WHEN B=1 THEN c END) AS C1, 
MAX(CASE WHEN B=2 THEN c END) AS C2, // etc for B=3,4 
FROM table1 
GROUP BY A