我正在尝试仅使用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视图,也不需要另一个表,比如将此值的结果与其他表一起加入?
提前致谢, 安德烈
答案 0 :(得分:3)
我会使用类似CASE
...
SELECT
(CASE type
WHEN 'ACTUAL' THEN 'A'
WHEN 'OTHER' THEN 'O'
ELSE '?' END)
FROM
使用此方法,您可以根据您想要的任何条件返回您想要的任何内容,而不仅仅是子串。