我在CASE语句中遇到一个问题,在该语句中,我正在检查两个字段,即primary_code和secondary_code。一个或另一个将始终处于填充状态,但是有时两者都会存在,这就是问题所在。当两个字段都填充后,我需要结果显示案例ID的2行。一个带有1,另一个带有2。有关更多详细信息,请参见下文。
SELECT CASE_ID,
CASE WHEN PRIMARY_CODE IS NOT NULL AND SECONDARY_CODE IS NULL THEN 1
WHEN SECONDARY_CODE IS NOT NULL AND PRIMARY_CODE IS NULL THEN 2
END AS XP_CODE
FROM TABLE1
满足条件时:
CASE_ID XP_CODE
5555555 1
7777777 2
但是,如果对于任何给定的case_id,这两个字段都不为空,那么我需要将结果集显示为记录的两行,其中一行的值为1,另一行的值为2。
当同时填充主代码字段和辅助代码字段时,结果应如下所示:
CASE_ID XP_CODE
5555555 1
5555555 2
7777777 2
由于主字段和次字段都不为空,因此案例ID为5555555的记录必须为两条。有谁知道如何在Oracle SQL开发人员工具中完成此操作?
您不需要case
,需要全部加入或合并。我怀疑您想要:
select case_id, 1 as XP_CODE
from table1
where PRIMARY_CODE IS NOT NULL
union all
select case_id, 2 as XP_CODE
from table1
where SECONDARY_CODE IS NOT NULL;
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句