Necesito crear una columna varchar que contenga el valor de color de las columnas booleanas, aquí está la estructura de la tabla:
CREATE TABLE public.prosp( id serial PRIMARY KEY NOT NULL, isblack bool, isyellow bool, isgreen bool ); Quiero agregar una columna llamada color que contiene, por ejemplo: green
if isgreen = true , probé esto y funcionó
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 ahora necesito poner el resultado de la expresión anterior en la columna de color .
Gracias.
¿Es esto lo que quieres?
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); Debo señalar que a menudo esto se haría usando 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) );Esto pone una coma entre los valores, en lugar de un punto y coma al final.