Oracle SQL Developer-CASE语句,用于在满足条件时为ID返回多行
我对CASE语句有一个问题,我正在检查两个名为primary_code和/或secondary_code的字段。一个或另一个总是会被填充,但有时两者都会被填充,问题就在这里。填充这两个字段时,我需要结果显示案例ID的两行。一行为1,另一行为2。有关更多详细信息,请参见下文Oracle SQL Developer-CASE语句,用于在满足条件时为ID返回多行,sql,oracle,Sql,Oracle,我对CASE语句有一个问题,我正在检查两个名为primary_code和/或secondary_code的字段。一个或另一个总是会被填充,但有时两者都会被填充,问题就在这里。填充这两个字段时,我需要结果显示案例ID的两行。一行为1,另一行为2。有关更多详细信息,请参见下文 SELECT CASE_ID, CASE WHEN PRIMARY_CODE IS NOT NULL AND SECONDARY_CODE IS NULL THEN 1 WHEN SECO
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,这两个字段都不是null,那么我需要结果集为记录显示两行,一行的值为1,另一行的值为2
填充主代码字段和辅助代码字段时,结果应如下所示:
CASE_ID XP_CODE
5555555 1
5555555 2
7777777 2
案例id 555需要有两条记录,因为主字段和辅助字段都不为空。有人知道应该如何在Oracle SQL developer tool中执行此操作吗?您不需要
case
,您需要一个join或union all。我怀疑你想要:
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;