翻译字符串postgres

时间:2011-09-23 20:07:44

标签: string postgresql translation

我正在尝试仅使用postgres SQL翻译两种类型的数据 我有一个列“类型”,可能包含这类数据。

type是一个字符串列,可能具有“ACTUAL”或“OLD”值

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

当我显示包含许多其他联接的列表时,我想仅显示“A”或“O”值 我无法找到其他方法来做到这一点:

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

我可以用我需要的方式替换文字, 但我正在寻找一些使用数组作为参数的函数。

类似于交叉引用的简单函数:

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

有没有人知道这样做的方法不使用SQL视图,也不需要另一个表,比如将此值的结果与其他表一起加入?

提前致谢, 安德烈

1 个答案:

答案 0 :(得分:3)

我会使用类似CASE ...

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

使用此方法,您可以根据您想要的任何条件返回您想要的任何内容,而不仅仅是子串。