插入条件常量

时间:2014-11-17 17:53:46

标签: sql postgresql sql-insert

我想做类似的事情:

insert into Table(a, b, c)
select a, b, 1 from OtherTable
where a > 0

c 是基于where子句的某个条件的Enum值。

我希望最终结果与之类似(即使这不起作用):

insert into Table(a, b, c)
select a, b, x from OtherTable, YetAnotherTable
where a > 0 AND (IF a=b THEN x = 'Enum1' ELSE x = 'Enum2' ENDIF)

你认为在一个声明中可以做到这样吗?

1 个答案:

答案 0 :(得分:1)

您可以使用case表达式:

insert into Table(a, b, c)
select a, 
       b, 
       CASE WHEN a = b THEN 'Enum1' ELSE 'Enum2' END
from OtherTable, YetAnotherTable
where a > 0