在连接表中的2列时,我需要使用多个CASE语句。
这是场景,我们如何实现这一目标。
在我的选择中,我们将表A中的col1 + col3串联起来。
在表A中,
当col2值为NULL并且
时 如果COL3值为0000
然后从表B的COL1中选择值
如果COL3值不等于0000,则为ELSE
从表B的COL2中选择值
表A:
col1 col2 col3
aa null 0000
bb null 1234
表b:
col1 col2 col3
LMNO PQRST
我尝试了类似的操作,
select
(a.col1 || '+' || a.col3)
CASE WHEN (a.col2 IS NULL) THEN
CASE WHEN (a.col3 = '0000') THEN
(Select col1 from b)
ELSE (a.col3 <> '0000')
(Select col2 from b)
ELSE
a.col2
as TEST
答案 0 :(得分:1)
假定加入条件基于a.column_will_have_same_value = b.column_will_have_same_value
select (a.col1 || '+' || a.col3)
, CASE WHEN a.col2 IS NULL AND a.col3 = '0000' THEN b.col1
WHEN a.col2 IS NULL AND a.col3 <> '0000' THEN b.col2
WHEN a.col2 IS NOT NULL A THEN a.col2
END as TEST
FROM tableA a
inner join tableB b on a.column_will_have_same_value = b.column_will_have_same_value
答案 1 :(得分:0)
这是您所期望的吗?
proc sql;
select
case
when a.col2 is null and a.col3='0000' then a.col1||b.col1
when a.col3<>'0000' then a.col1||b.col2
end as value
from tablea a, tableb b;
quit;