使用 rownum 总是得到非空值
Use rownum to always get non null value
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
- 空
这个查询 returns 一个名为 'MOBILE ' 的列有两行,当我最后不使用 rownum = 1
时,其中一个条目总是空的,但是如果我把 rownum = 1
接近尾声,然后在某些情况下它 returns 空值,在某些情况下它是非空值。我如何使用 rownum 以便查询始终 returns 非空值。
不要为此使用rownum。 rownum 将为您提供 在 您的查询 运行 之后的行号。使用正确定义的 ORDER BY 子句在末尾获取 NULLS 并仅获取第一行。
<your query>
WHERE wname='22135'
ORDER BY mobile NULLS LAST
FETCH FIRST 1 ROWS ONLY
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
- 空
这个查询 returns 一个名为 'MOBILE ' 的列有两行,当我最后不使用 rownum = 1
时,其中一个条目总是空的,但是如果我把 rownum = 1
接近尾声,然后在某些情况下它 returns 空值,在某些情况下它是非空值。我如何使用 rownum 以便查询始终 returns 非空值。
不要为此使用rownum。 rownum 将为您提供 在 您的查询 运行 之后的行号。使用正确定义的 ORDER BY 子句在末尾获取 NULLS 并仅获取第一行。
<your query>
WHERE wname='22135'
ORDER BY mobile NULLS LAST
FETCH FIRST 1 ROWS ONLY