select case when (CUST.ADDRESS_TYPE='OFFICE') then
(Select MOBILE
FROM cust_table CUST
where CID = Deal.CID
and ADDRESS_TYPE = 'CURRES'
and rownum = 1)
else
CUST.MOBILE
end as MOBILE
FROM cust_table CUST
RIGHT OUTER JOIN (SELECT CID CID
, WNAME
, APPLICANT_TYPE
FROM deal_table ) DEAL
ON DEAL.CID = CUST.CID
AND APPLICANT_TYPE = 'P'
and mailing_add = 'true'
WHERE WNAME='22135'
and rownum = 1
移动#
无效的
647432923
或者
移动#
74238423
无效的
这个查询返回一个名为“mobile”的列,其中有两行,当我不使用时,其中一个条目总是空的 rownum = 1
最后,如果我 rownum = 1
最后,在某些情况下返回空值,在某些情况下返回非空值。如何使用rownum使查询始终返回非空值。
1条答案
按热度按时间fd3cxomn1#
不要为此使用rownum。在运行查询之后,rownum将给出行的编号。使用一个正确定义的order by子句在末尾获取空值,并且只获取第一行。