1
我正在尋找將行分成2行或3行。這可能嗎?
我有一個表,顯示行情如下:SQL:將單行分成2行或3行
表名:行情
ID | NAME | BusCost | TaxiCost | TrainCost
-------------------------------------------
01 | Steve | NULL | 25 | NULL
02 | Barry | 15 | 30 | NULL
03 | Bob | 150 | 400 | 300
但我想說明這樣的行情:
ID | Name | Cost
------------------
01 | Steve | 25
02 | Barry | 15
02 | Barry | 30
03 | Bob | 30
03 | Bob | 100
03 | Bob | 70
我猜我我將需要使用某種UNION
來做到這一點,但我很茫然。我對SQL相對比較陌生,並且希望任何人都能指向正確的方向。
我來(不是很緊密要麼)最接近的是這樣:
SELECT COST
FROM
(
SELECT BusCost AS COST FROM Quotes
UNION
SELECT TaxiCost AS COST FROM Quotes
UNION
SELECT TrainCost AS COST FROM Quotes
) A
GROUP BY COST
SELECT id, name FROM Quotes
UNION ALL
SELECT COST
FROM
(
SELECT BusCost AS COST FROM Quotes
UNION
SELECT TaxiCost AS COST FROM Quotes
UNION
SELECT TrainCost AS COST FROM Quotes
) A
GROUP BY COST
任何幫助將不勝感激。
'UNION'刪除重複項,所以如果Bob在busride上花費30美元而在訓練器上花費30美元,則最終只會輸入一個'30'項。要保持重複,請使用'UNION ALL'。您也可能想看看'PIVOT'' – HoneyBadger
您對Bob的期望結果似乎與輸入數據不匹配。是否有一些特殊的數學運算,還是僅僅是一個錯字? –