0
我有int類型列,其中所有值都是從0到-5。PostgreSQL,用Enum替換
是否有可能在查詢中根據值0,-1,-2, - 而在結果文本「ZERO,ONE,TWO,THREE,FOUR,FIVE」中得到一些「枚舉」 3,-4和-5,而無需向PostgreSQL服務器添加功能,也無需更改表中的數據。
如果該查詢的外觀應該如何。
我有int類型列,其中所有值都是從0到-5。PostgreSQL,用Enum替換
是否有可能在查詢中根據值0,-1,-2, - 而在結果文本「ZERO,ONE,TWO,THREE,FOUR,FIVE」中得到一些「枚舉」 3,-4和-5,而無需向PostgreSQL服務器添加功能,也無需更改表中的數據。
如果該查詢的外觀應該如何。
select case the_column
when 0 then 'ZERO'
when -1 then 'ONE'
when -2 then 'TWO'
when -3 then 'THREE'
when -4 then 'FOUR'
when -5 then 'FIVE'
end as value_label
from the_table
SQLFiddle例如:http://sqlfiddle.com/#!15/48b69/1
上面將在情況下,任何其它值被存儲在the_column
返回null
。如果你不想這樣做,你需要添加一個else
部分case
返回一些默認值(例如unknown
)
感謝'名稱',因爲此列之間的其他人,我有現有的SELECT後刪除SELECT CASE的前面我得到了想要的結果。爲什麼你把AS value_label?對於我沒有這個查詢工作。 –
@ user973238:這只是給這個表達一個合適的名字。如果你可以和列標題'?column?'一起生活,那也不錯。 –
是的,因爲我通過NET使用數據網格中的列給自定義名稱。 –