我正在尝试仅使用 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 View 并且不需要另一个表(例如将此值的结果与其他表连接起来)的方法?
提前致谢, 安德烈
最佳答案
我会使用类似CASE
...
SELECT
(CASE type
WHEN 'ACTUAL' THEN 'A'
WHEN 'OTHER' THEN 'O'
ELSE '?' END)
FROM
使用这个方法,你可以根据你想要的任何标准返回你想要的任何东西,而不仅仅是子字符串。
关于string - 翻译字符串postgres,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7534249/