2011-09-23 94 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。