我有一個查詢,最終將返回可能具有值「1」,「2」或「3」的列,其中1表示紅色,2表示藍色,3表示綠色。如何在查詢中爲返回的值賦予別名?
如何修改查詢,以便而不是返回1,「紅色」返回,2「BLUE」返回等
我希望我的結果是這樣的:
COLOR
RED
RED
GREEN
BLUE
代替:
COLOR
我有一個查詢,最終將返回可能具有值「1」,「2」或「3」的列,其中1表示紅色,2表示藍色,3表示綠色。如何在查詢中爲返回的值賦予別名?
如何修改查詢,以便而不是返回1,「紅色」返回,2「BLUE」返回等
我希望我的結果是這樣的:
COLOR
RED
RED
GREEN
BLUE
代替:
COLOR
SELECT Decode(MyField, 1, 'RED'
2, 'BLUE'
3, 'GREEN'
'UNDEFINED' as myfieldColor
FROM myTable
謝謝,這正是我正在尋找的! – ZakTaccardi
我沒有足夠的聲望來提高您的答案,並且我無法將其標記爲5分鐘內回答! – ZakTaccardi
我並不擔心。很高興提供幫助。如果你不得不多次這樣做,Eran的建議並不壞。具有MyFieldColorType或類似顏色的表的外鍵允許在無需更改代碼(SQL)的情況下實現新顏色的靈活性。但如果你的'顏色'列表是有限的,那麼這是一個合理的解決方案(譯碼) – xQbert
或者,更標準符合性:
SELECT CASE WHEN MyField = 1 THEN 'RED'
WHEN MyField = 2 THEN 'BLUE'
WHEN MyField = 3 THEN 'GREEN'
ELSE 'UNDEFINED'
EMD myfieldColor
FROM myTable;
它也更靈活,因爲你可以在WHEN子句中使用SQL的一個更廣泛的品種。例如:
WHEN MyField = 2 AND Lang = 'SPANISH' THEN 'AZUL'
告訴我們查詢! (但是,[解碼](http://docs.oracle.com/cd/B19306_01/server.102/b14200/functions040.htm)或[案例](http://docs.oracle.com/cd/B19306_01/ server.102/b14200/expressions004.htm)應該符合你的需求) – xQbert