我有一张桌子 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 执行此操作,请告诉我。谢谢。