gpt4 book ai didi

sql - 从 bool 列 postgresql 创建 varchar 列

转载 作者:行者123 更新时间:2023-11-29 13:20:07 25 4
gpt4 key购买 nike

我需要创建一个包含 bool 列颜色值的 varchar 列,这是表结构:

CREATE TABLE public.prosp(
id serial PRIMARY KEY NOT NULL,
isblack bool,
isyellow bool,
isgreen bool
);

我想添加一个名为 color 的列,例如: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 列中。

谢谢。

最佳答案

这是你想要的吗?

alter table public.prosp add column color varchar(255);

update public.prosp
set color = (CASE WHEN isblack THEN 'black; ' ELSE '' END) ||
(CASE WHEN isyellow THEN 'yellow; ' ELSE '' END) ||
(CASE WHEN isgreen THEN 'green; ' ELSE '' END);

我应该注意到,这通常会使用 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)
);

这会在值之间放置一个逗号,而不是在末尾放置一个分号。

关于sql - 从 bool 列 postgresql 创建 varchar 列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43507741/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com