我需要创建一个包含布尔列颜色值的varchar列,这里是表结构:
CREATE TABLE public.prosp(
id serial PRIMARY KEY NOT NULL,
isblack bool,
isyellow bool,
isgreen bool
);
我想添加一个名为color containg的列,例如:green
如果isgreen = true
,我试过这个并且有效
SELECT
"id",
CASE WHEN "isblack" THEN 'black; ' ELSE '' END ||
CASE WHEN "isyellow" THEN 'yellow; ' ELSE '' END ||
CASE WHEN "isgreen" THEN 'green; ' ELSE '' END
AS couleurs
FROM public.prosp
现在我需要将上述表达式的结果放在color
列中。
感谢。
答案 0 :(得分:1)
这是你想要的吗?
concat_ws()
我应该注意,通常可以使用update public.prosp
set color = concat_ws(',',
(CASE WHEN isblack THEN 'black' END),
(CASE WHEN isyellow THEN 'yellow' END),
(CASE WHEN isgreen THEN 'green' END)
);
:
{{1}}
这会在值之间加上逗号,而不是在结尾处使用分号。