SQL条件未被拾取 - 左外连接

时间:2015-10-12 21:17:52

标签: sql left-join conditional-statements outer-join

下面,我有一个SQL select语句,但是我遇到了一些问题,其中一个条件被选中。有没有其他方法可以安排这个陈述,以便获得条件?

条件未被提起:

(NSTR_UI_OBJ.dte_ui_obj_end is NULL or (NSTR_UI_OBJ.dte_ui_obj_end >= '2015-10-01 00:00:00'))

完整陈述:

SELECT NSTR_UI_OBJ.NAM_UI_OBJ
      ,CDE_UI_OBJ_TYP
      ,DES_UI_OBJ_LNG
      ,NVL(NSTR_UI_OBJ_CNTC.CDE_NSTR_CNTC_TYP,'')
      ,NVL(NSTR_CNTC_COMM.TXT_COMM_VALUE,'') 
FROM NSTR_UI_OBJ 
LEFT OUTER JOIN NSTR_UI_OBJ_CNTC ON NSTR_UI_OBJ_CNTC.ID_UI_OBJ = NSTR_UI_OBJ.ID_UI_OBJ 
                                AND (NSTR_UI_OBJ.dte_ui_obj_end is NULL 
                                      or (NSTR_UI_OBJ.dte_ui_obj_end >= '2015-10-01 00:00:00')
                                     )
LEFT OUTER JOIN NSTR_CNTC_COMM    ON  NSTR_UI_OBJ_CNTC.ID_NSTR_CNTC = NSTR_CNTC_COMM.ID_NSTR_CNTC
ORDER BY CDE_UI_OBJ_TYP,NSTR_UI_OBJ.NAM_UI_OBJ

1 个答案:

答案 0 :(得分:1)

将条件放在WHERE子句

SELECT NSTR_UI_OBJ.NAM_UI_OBJ, CDE_UI_OBJ_TYP, DES_UI_OBJ_LNG, NVL(NSTR_UI_OBJ_CNTC.CDE_NSTR_CNTC_TYP, ''), NVL(NSTR_CNTC_COMM.TXT_COMM_VALUE, '')
FROM NSTR_UI_OBJ
LEFT OUTER JOIN NSTR_UI_OBJ_CNTC ON NSTR_UI_OBJ_CNTC.ID_UI_OBJ = NSTR_UI_OBJ.ID_UI_OBJ
LEFT OUTER JOIN NSTR_CNTC_COMM ON NSTR_UI_OBJ_CNTC.ID_NSTR_CNTC = NSTR_CNTC_COMM.ID_NSTR_CNTC
WHERE NSTR_UI_OBJ.dte_ui_obj_end IS NULL
    OR (NSTR_UI_OBJ.dte_ui_obj_end >= '2015-10-01 00:00:00')
ORDER BY CDE_UI_OBJ_TYP, NSTR_UI_OBJ.NAM_UI_OBJ