我有一个与此类似的数据集;
col1 col2 col3
1 YES NO
2 NO YES
我正在尝试应用case
语句,
case when col1 = 1 then col2
when col1 = 2 then col3 end as newcol
现在newcol
在输出中的值为YES/NO
。是否可以在上述case
条件中应用其他case
,以便我可以将YES
硬编码为Y
,将NO
硬编码为N
。
我通过在外部查询中添加case
语句得到了结果。是否有任何替代方法,如嵌套case
。
我也可以使用列别名case
?
newcol
条件
答案 0 :(得分:3)
您可以在case
周围添加案例表达式,如下所示:
case (
case
when col1 = 1 then col2
when col1 = 2 then col3
end
) when 'YES' then 'Y' else 'N' end as newcol
SUBSTR
会在没有条件的情况下选择YES
或NO
的第一个字符:
SUBSTR(
case
when col1 = 1 then col2
when col1 = 2 then col3
end
, 1
, 1
) as newcol