使用rownum始终获取非空值

o4tp2gmn  于 2021-07-26  发布在  Java
关注(0)|答案(1)|浏览(391)
  1. select case when (CUST.ADDRESS_TYPE='OFFICE') then
  2. (Select MOBILE
  3. FROM cust_table CUST
  4. where CID = Deal.CID
  5. and ADDRESS_TYPE = 'CURRES'
  6. and rownum = 1)
  7. else
  8. CUST.MOBILE
  9. end as MOBILE
  10. FROM cust_table CUST
  11. RIGHT OUTER JOIN (SELECT CID CID
  12. , WNAME
  13. , APPLICANT_TYPE
  14. FROM deal_table ) DEAL
  15. ON DEAL.CID = CUST.CID
  16. AND APPLICANT_TYPE = 'P'
  17. and mailing_add = 'true'
  18. WHERE WNAME='22135'
  19. and rownum = 1

移动#

无效的
647432923
或者

移动#

74238423
无效的
这个查询返回一个名为“mobile”的列,其中有两行,当我不使用时,其中一个条目总是空的 rownum = 1 最后,如果我 rownum = 1 最后,在某些情况下返回空值,在某些情况下返回非空值。如何使用rownum使查询始终返回非空值。

fd3cxomn

fd3cxomn1#

不要为此使用rownum。在运行查询之后,rownum将给出行的编号。使用一个正确定义的order by子句在末尾获取空值,并且只获取第一行。

  1. <your query>
  2. WHERE wname='22135'
  3. ORDER BY mobile NULLS LAST
  4. FETCH FIRST 1 ROWS ONLY

相关问题