0
我的表看起來像查詢從表中多行從同一個表
ID AB_ID VALUES
1 2 20
2 2 10
3 2 30
4 2 60
返回一行,我想創建一個查詢返回
AB_ID value1 value2 value3 value4
2 20 10 30 60
謝謝你的幫助。
我的表看起來像查詢從表中多行從同一個表
ID AB_ID VALUES
1 2 20
2 2 10
3 2 30
4 2 60
返回一行,我想創建一個查詢返回
AB_ID value1 value2 value3 value4
2 20 10 30 60
謝謝你的幫助。
既然你知道有將要每AB_ID
四行,你應該能夠沿着這些路線做一個支點
SELECT ab_id,
MAX(CASE WHEN rn = 1 THEN values ELSE NULL END) value1,
MAX(CASE WHEN rn = 2 THEN values ELSE NULL END) value2,
MAX(CASE WHEN rn = 3 THEN values ELSE NULL END) value3,
MAX(CASE WHEN rn = 4 THEN values ELSE NULL END) value4
FROM (SELECT ab_id,
values,
rank() over (partition by ab_id
order by id) rn
FROM your_table)
GROUP BY ab_id
如果您使用的是Oracle 11.2,你應該能夠使用PIVOT
關鍵字也是如此。我不確定你使用的是什麼版本的Oracle。
什麼數據庫引擎?你是否每AB_ID有4行? value1到value4是否與每個AB_ID的ID列升序相對應? – gbn 2012-07-30 15:02:45
樞軸條款是你需要的 – 2012-07-30 15:04:15
@ElVieejo:也許不是..我們沒有足夠的信息 – gbn 2012-07-30 15:04:42