如何不从不喜欢条件的地方排除null?

Mow*_*gli 2 sql oracle oracle10g

在我的查询的where子句中,如果我在where子句中包含条件,例如

where 
      T2.Comments not like '%ABC%' 
  and T2.Comments not like '%xyz%'
Run Code Online (Sandbox Code Playgroud)

它还会过滤空白/空注释.我不希望它过滤掉null或空格.

什么是过滤掉例如的另一种方法.ABC而且xyz也不排除nulls/blanks?

其余的caluse ..(添加底部两个条件后我没有得到任何空值.

Where
    T1.OUT_NO = T2.OUT_NO 
AND T3.OUT_NO = T1.OUT_NO 
AND CAUSE_CAP.CAUSE_NO NOT IN (1,3,5,7,9) 
AND ("T1"."TIME_STAMP">=TO_DATE ('01-04-2013 00:00:00', 'DD-MM-YYYY HH24:MI:SS') AND "T1"."TIME_STAMP"<TO_DATE ('06-04-2013 23:59:59', 'DD-MM-YYYY HH24:MI:SS')) 
AND NOT (CAUSE_CAP.CAUSE_NO = 13 AND START_TABLE.TABLE_NO = 83)
AND T2.Comments not like '%ABC%'
AND T2.Comments not like '%XYZ%'
Run Code Online (Sandbox Code Playgroud)

drq*_*ver 8

只需添加NULL一个特定的案例.[编辑以显示如何将这种方法推广到OP更复杂的查询]

Where
    T1.OUT_NO = T2.OUT_NO 
AND T3.OUT_NO = T1.OUT_NO 
AND CAUSE_CAP.CAUSE_NO NOT IN (1,3,5,7,9) 
AND ("T1"."TIME_STAMP">=TO_DATE ('01-04-2013 00:00:00', 'DD-MM-YYYY HH24:MI:SS') AND "T1"."TIME_STAMP"<TO_DATE ('06-04-2013 23:59:59', 'DD-MM-YYYY HH24:MI:SS')) 
AND NOT (CAUSE_CAP.CAUSE_NO = 13 AND START_TABLE.TABLE_NO = 83)
AND (T2.Comments IS NULL OR 
        (T2.Comments not like '%ABC%'
         AND T2.Comments not like '%XYZ%')
    )
Run Code Online (Sandbox Code Playgroud)