1
我有三个CASE语句:非相互排斥的CASE语句
create view J as
select *,
(CASE WHEN A in ('01', ‘03') then TRUE ELSE FALSE END) as X,
(CASE WHEN A = ‘2' then TRUE ELSE FALSE END) as Y,
(CASE WHEN A in ('02', '03') then TRUE ELSE FALSE END) as Z
from
K;
我希望能够创建一个包含X的一个领域,Y,Z的值。我尝试了以下内容,但CASE语句创建的方式只强制第一个参数为true。我理解,这是由于这样的事实,与值“03”的观察可以在X或Z同样一个观察值可以在Y或Z的
create view J as
(select *,
(CASE
WHEN X = TRUE then 1
WHEN Y = TRUE then 2
WHEN Z = TRUE then 3
ELSE NULL END)
as grouped_field
from select
(CASE WHEN A in ('01', ‘03') then TRUE ELSE FALSE END) as X,
(CASE WHEN A = ‘2' then TRUE ELSE FALSE END) as Y,
(CASE WHEN A in ('02', '03') then TRUE ELSE FALSE END) as Z
from
K));