在我的前端应用程序中,我有一个名为pick的函数(VALUE,' col1',' col2',' col3')。如果VALUE为2,则应选择col2中的值。
使用"","切换案例"或者" if else"计算
我试图在Postgres中找到类似的功能,但到目前为止还没有运气。看到一些函数array()和values()提到了,但找不到正确的语法。
目标是根据第一列值设置三个列值的返回值。
伪代码(不工作):
Select status values(column1,column2,column3)from code
我知道我可以通过使用" case-when-then-else-end"来实现这一点,但我正在寻找一种更短的方法来实现同样的目标。
Jsfiddle展示了原则。但我只想根据类型选择一个值:
答案 0 :(得分:0)
您可以从pr_ *列创建值数组,然后以这种方式选择其中一个:
(array[prl_1,prl_2,prl_3])[code_type]
这是一个简单的演示:http://sqlfiddle.com/#!15/e0b41/23
select *,
(array[prl_1,prl_2,prl_3])[code_type]
from code
left join prl on prl_id =1