Sql 使用条件常量插入到

Sql 使用条件常量插入到,sql,postgresql,sql-insert,Sql,Postgresql,Sql Insert,我想做一些像: insert into Table(a, b, c) select a, b, 1 from OtherTable where a > 0 但是wherec将是基于where子句的特定条件的枚举值 我希望最终结果类似于(即使这不起作用): 您认为在一个语句中可以实现类似的功能吗?您可以使用大小写表达式: insert into Table(a, b, c) select a, b, CASE WHEN a = b THEN 'Enum1'

我想做一些像:

insert into Table(a, b, c)
select a, b, 1 from OtherTable
where a > 0
但是wherec将是基于where子句的特定条件的枚举值

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


您认为在一个语句中可以实现类似的功能吗?

您可以使用
大小写
表达式:

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

是的,你没有理由不能那样做。。如果您提供了表结构和一些示例数据,您可能会得到更具体的答案……只是出于好奇:知道为什么
如果a=b那么'Enum1'或者'Enum2'END
是语法错误吗?@GCC404 Postgres中的
If
构造不应该以
END
结尾,而是以
END If
结尾(例如,请参阅)。
insert into Table(a, b, c)
select a, 
       b, 
       CASE WHEN a = b THEN 'Enum1' ELSE 'Enum2' END
from OtherTable, YetAnotherTable
where a > 0