如何解决使用 IF/ELSE 语句将列添加到 SQL 中的现有表
我要起诉 PgAdmin4
我有一张名为 Development
的表。该表包含一个名为 Customer
的列。我想创建一个名为 Target
的新列,当客户为 null
时等于 1,否则为 0
。
这是我的代码:
ALTER TABLE development ADD COLUMN Target INTEGER;
IF Customer IS NULL then
SET Target = 1;
else
SET Target = 0;
END if;
我收到此错误:
ERROR: Syntax error at or near "IF"
LINE 3: IF Customer IS NULL then
^
sql state: 42601
Character: 53
解决方法
大多数数据库都支持生成的列。语法是这样的:
alter table development add column int generated always as
(case when customer is null then 1 else 0 end);
确切的语法因数据库而异。
这比向表中添加新列强大得多,因为生成的列始终具有正确的值——即使没有 update
。
您可以使用带有 update
表达式的 case
语句:
UPDATE mytable
SET target = CASE WHEN customer IS NULL THEN 1 ELSE 0 END
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。