[英]Oracle SQL - left join + left outer join
我正在查詢三個表。 表1A和表2B在DEPTID上具有一對一的比率。 但是,表3 C不包含0值。 當使用TABLE1 A或TABLE2 B進行左外聯接時,我可以成功地從COUNT3中獲得COUNT值,從而從TABLE3 C中獲得0值,但是當我將所有三個表聯接在一起時,它給出的是(空)而不是0。 我需要它返回0而不是(null)。 很感謝任何形式的幫助:
SELECT A.DEPTID, B.DEPT_NAME, SUM(C.HEAD_COUNT)
FROM TABLE1 A
LEFT JOIN TABLE2 B ON A.DEPTID = B.DEPTID
LEFT OUTER JOIN TABLE3 C ON A.POSITION_NUMBER = C.POSITION_NUMBER
GROUP BY A.DEPTID, B.DEPT_NAME
這是我目前得到的:
部門1:人數9
部門2:員工人數11
部門3 :(無)
使用COALESCE()
或NVL()
將0
替換為NULL
值:
SELECT A.DEPTID,
B.DEPT_NAME,
SUM(COALESCE( C.HEAD_COUNT, 0 ) )
FROM TABLE1 A
LEFT OUTER JOIN TABLE2 B
ON A.DEPTID = B.DEPTID
LEFT OUTER JOIN TABLE3 C
ON A.POSITION_NUMBER = C.POSITION_NUMBER
GROUP BY A.DEPTID,
B.DEPT_NAME
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.