簡體   English   中英

在不滿足條件的列中顯示null

[英]Display null in the column where condition doesn't satisfy

我有兩張桌子

TRAINING_EMPLOYEE

在此處輸入圖片說明

TRAINING_DEPARTMENT

在此處輸入圖片說明

從兩個表中,我都希望除TRAINING_EMPLOYEE中的 DEPARTMENT_ID和TRAINING_DEPARTMENT中的 DEPARTMENT_NAME列之外的所有列

我正在做這個

SELECT TE.EMPLOYEE_ID,TE.FIRST_NAME,TE.LAST_NAME,TO_CHAR(HIRE_DATE ,'DD-
MON-YYYY')HIRE_DATE,TD.DEPARTMENT_NAME FROM training_employee TE,
training_department TD  WHERE TE.DEPARTMENT_ID=TD.DEPARTMENT_ID;

我正在得到這個 在此處輸入圖片說明

但是,如果“ TRAINING_EMPLOYEE.DEPARTMENT_ID <> TRAINING_DEPARTMENT.DEPARTMENT_ID”,我確實希望所有4行TRAINING_EMPLOYEE都在Department_name上為null

您想要left join 而且,這很困難,因為您使用的是不真正支持它的過時的聯接語法。 這是一條簡單的規則:不要在from子句中使用逗號。 始終使用顯式join語法:

SELECT TE.EMPLOYEE_ID, TE.FIRST_NAME, TE.LAST_NAME,
       TO_CHAR(HIRE_DATE, 'DD-MON-YYYY') as HIRE_DATE, TD.DEPARTMENT_NAME
FROM training_employee TE LEFT JOIN
     training_department TD 
     ON TE.DEPARTMENT_ID = TD.DEPARTMENT_ID;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM