首页 > 解决方案 > 如果 Oracle SQL 中的第一个字段有值,如何使第二个字段为空

问题描述

我在 ORACLE 中有两个计算列(Ex3 和 EX12)。因此,无论两个字段都有值(例如:ID 118189AC),id 都喜欢将值保留在 EX3 中,但将 EX12 变为 NULL。有什么建议么?

SELECT *

FROM 
(SELECT ID,

CASE
    WHEN PORT IN ('CAP')
    THEN 3
    ELSE NULL
END AS EX3,

CASE
    WHEN PORT NOT IN ('TEST1', 'TEST2', 'TEST3')
    THEN 12
    ELSE NULL
END AS EX12

FROM LAN.DETAILS)
WHERE (EX3 IS NOT NULL OR EX12 IS NOT NULL)
ORDER BY ID ASC


ID         EX3     EX12
118051PU            12
118052PU            12
118189AC    3       12
118397PU            12
118451AC    3       12
119343AC    3       12
119387PU            12
119484PU            12
119772PU            12
119997PU            12
120320AC    3       12

标签: sqloraclecalculated-columns

解决方案


我想你只想要一个case表达:

select id, ex3,
       (case when ex3 is not null and ex12 is not null then null else ex12 end) as ex12
. . .

推荐阅读