2011-09-23 112 views
0

我想翻譯2種類型的數據只使用postgres SQL我有一個可能包含數據類型的「類型」列。翻譯字符串postgres

類型爲字符串列,當我展示了很多其他的列表聯接我想只顯示「A」或「O可能有「實際的」或「舊」值

+-type-+ 
+ACTUAL+ 
+OLD + 
+------+ 

「值 我無法找到其他的方式來做到這一點比:

SELECT replace(replace(mytable.type, 'ACTUAL', 'A'),'OLD', 'O'); 

有了,我可以替換的文字,我需要的方式, 但使用數組作爲參數,我一直在尋找一些更多的功能。

就像一個交叉引用簡單的功能:

translate(['ACTUAL','OLD'], ['A','O']) 

有誰知道一個辦法做到這一點不使用SQL視圖既不需要另一個表像與其他表加入這個值的結果?

由於提前, 安德烈

回答

3

我會使用類似CASE ...

SELECT 
    (CASE type 
    WHEN 'ACTUAL' THEN 'A' 
    WHEN 'OTHER' THEN 'O' 
    ELSE '?' END) 
FROM 

使用這種方法,你可以返回基於任何你想要的標準,沒有任何你想要的只是分-stringing。