0
加入我有一個表T1,從而如何按列名
gsdv |nsdv |esdv
-------------------
228.90 |216.41|0.00
和表T2,使得
ds |nm
--------------------------
'Non-Revenue Sales'|'ESDV'
'Gross Sales' |'GSDV'
'Net Sales' |'NSDV'
如何獲得下表?
ds |nm |val
---------------------------------
'Non-Revenue Sales'|'ESDV'|0.00
'Gross Sales' |'GSDV'|228.90
'Net Sales' |'NSDV'|216.41
我知道,我可以用下面的
SELECT ds,nm,esdv val FROM T1,T2 WHERE nm = 'esdv'
UNION
SELECT ds,nm,gsdv val FROM T1,T2 WHERE nm = 'gsdv'
UNION
SELECT ds,nm,nsdv val FROM T1,T2 WHERE nm = 'nsdv'
做到這一點,但我正在尋找一個更通用/更好的解決方案。我使用的是Sybase,但如果您可以想辦法與其他DBMS一起完成此任務,請告訴我。 謝謝。
請記住'UNION'比'UNION ALL'慢,因爲它試圖刪除重複項。如果你沒有重複,使用'UNION ALL' – Kermit