我试图将一列的值更改为从其他两个表中的信息构建的标题,但是我在获取数据时遇到了麻烦。我目前想在表中的所有条目上执行此查询。我在CASE上遇到语法错误,但我无法弄清楚原因。
UPDATE campaigns AS cmp
SET name = (
WITH ptn AS (SELECT first_name, last_name FROM politicians WHERE id = cmp.politician_id),
rc AS (SELECT office FROM races WHERE id = cmp.race_id)
CASE
WHEN rc.office IS NULL OR rc.office = '' THEN ptn.first_name || ' ' || ptn.last_name
ELSE ptn.first_name || ' ' || ptn.last_name || ' for ' || rc.office
END
)
这是PostGres 9.4。以下是我遇到的错误信息:
ERROR: syntax error at or near "case"
LINE 5: case
^
********** Error **********
ERROR: syntax error at or near "case"
SQL state: 42601
Character: 189