0

我想编写postgresql代码,根据名为d的字符串类型的A字段,根据表A值定义表B,如果它匹配预定义字符串列表的任何元素。表 A 包含 2 个字段:c 和 d,d 是一个字符串。

这是我写的: create table B as select c, CASE when d in ("A1", "A2", "A3") then 1 end as TYPE1, CASE when d in ("B1", "B2", "B3") then 1 end as TYPE2 from A;

如果 d 是“A1”、“A2”、“A3”中的任何值,我希望 TYPE1 字段设置为 1,如果 d 是“B1”、“B2”中的任何值,我希望 TYPE2 字段设置为 1, B3"。

这是我得到的错误:列“A1”不存在。

在代码中,我将最终编写将 TYPE1 或 TYPE2 设置为 1 的字符串值,不能简单地用此代码段中的匹配模式来描述 感谢您的帮助

4

2 回答 2

2

字符串文字用 括起来'

create table B as select c, CASE  when d in ('A1', 'A2', 'A3') then 1 end as TYPE1, CASE  when d in ('B1', 'B2', 'B3') then 1 end as TYPE2 from A;
于 2021-09-29T16:13:10.973 回答
1

它只是通过单引号 'A1', 'A2' , 'A3' 改变 '"' 周围的字符串 "A1", "A2" ...

于 2021-09-29T16:15:12.573 回答