DECODE 函数未在过程中将非 IP 值分配给 NULL
DECODE function is not assigning Non IP values to NULL in procedure
我有一个存储过程,我在其中将 IP1
站点指定为 IP
,如果不是 IP1
,那么它应该是 NonIP
。
但是当站点不是 IP1
时,解码将无法正常工作。
select a.SAP_ID, decode (a.priority_site, 'IP1', 'IP', 'NonIP') AS owners
FROM
r4g_osp.enodeb a
LEFT JOIN app_wfm.wfm_candidate_status st ON st.status = a.enodebstatus
WHERE a.sap_id in ('I-AP-NLGD-ENB-I001')
AND
a.scope IN (
'EnodeB-Connected_Fibre',
'EnodeB-Connected_MW'
) ;
下面是我的输出
如果值为空或空白,请建议如何设置 NonIP
你的外连接不是问题。
DECODE
不是问题。
运行 这个版本的代码 DECODE
和 LEFT JOIN
被注释掉了。
select * -- a.SAP_ID, decode (a.priority_site, 'IP1', 'IP', 'NonIP') AS owners
FROM
r4g_osp.enodeb a
-- LEFT JOIN app_wfm.wfm_candidate_status st ON st.status = a.enodebstatus
WHERE a.sap_id in ('I-AP-NLGD-ENB-I001')
AND
a.scope IN (
'EnodeB-Connected_Fibre',
'EnodeB-Connected_MW'
) ;
结果如何?
如果您从原始查询中没有得到任何行,您应该从这个版本中得到 none。 DECODE
没有可处理的数据,因为未返回任何行。
外连接不执行任何操作,因为您只是访问和过滤来自 ENODEB table 的数据。由于是left outer join,所以没有根据状态码进行额外的过滤
我有一个存储过程,我在其中将 IP1
站点指定为 IP
,如果不是 IP1
,那么它应该是 NonIP
。
但是当站点不是 IP1
时,解码将无法正常工作。
select a.SAP_ID, decode (a.priority_site, 'IP1', 'IP', 'NonIP') AS owners
FROM
r4g_osp.enodeb a
LEFT JOIN app_wfm.wfm_candidate_status st ON st.status = a.enodebstatus
WHERE a.sap_id in ('I-AP-NLGD-ENB-I001')
AND
a.scope IN (
'EnodeB-Connected_Fibre',
'EnodeB-Connected_MW'
) ;
下面是我的输出
如果值为空或空白,请建议如何设置 NonIP
你的外连接不是问题。
DECODE
不是问题。
运行 这个版本的代码 DECODE
和 LEFT JOIN
被注释掉了。
select * -- a.SAP_ID, decode (a.priority_site, 'IP1', 'IP', 'NonIP') AS owners
FROM
r4g_osp.enodeb a
-- LEFT JOIN app_wfm.wfm_candidate_status st ON st.status = a.enodebstatus
WHERE a.sap_id in ('I-AP-NLGD-ENB-I001')
AND
a.scope IN (
'EnodeB-Connected_Fibre',
'EnodeB-Connected_MW'
) ;
结果如何?
如果您从原始查询中没有得到任何行,您应该从这个版本中得到 none。 DECODE
没有可处理的数据,因为未返回任何行。
外连接不执行任何操作,因为您只是访问和过滤来自 ENODEB table 的数据。由于是left outer join,所以没有根据状态码进行额外的过滤