簡體   English   中英

SQL:Where 子句中的 case 子句

[英]SQL: case clause in Where clause

我正在嘗試編寫一個查詢,我需要顯示開始日期超過一年或開始日期 = Null 的值。

我已經完成了“一年多前”的部分,但我不知道如何將它與開始日期 = null 合並

我需要用case語句嗎?

Select
    T0.JOBID
  , T0.JOBTITLE
  , T0.STATUS
  , T0.STARTDATE
  , T0.ENTEREDDATE
From
    ENPRISE_JOBCOST_JOB T0
Where
    T0.STATUS Not In (7, 8) AND
    T0.STARTDATE <= DATEADD(YEAR, -1, GETDATE())
 Select T0.JOBID , T0.JOBTITLE , T0.STATUS , T0.STARTDATE , T0.ENTEREDDATE 
   From ENPRISE_JOBCOST_JOB T0
     Where T0.STATUS Not In (7, 8) 
      AND (T0.STARTDATE <= DATEADD(YEAR, -1, GETDATE()) OR T0.STARTDATE IS NULL)

只需在WHERE子句中添加一個NULL檢查:

WHERE
    T0.STATUS NOT IN (7, 8) AND
    (T0.STARTDATE <= DATEADD(YEAR, -1, GETDATE()) OR TO.STARTDATE IS NULL)

添加OR T0.STARTDATE is null 確保在整個謂詞周圍添加括號:

Select
    T0.JOBID
  , T0.JOBTITLE
  , T0.STATUS
  , T0.STARTDATE
  , T0.ENTEREDDATE
From
    ENPRISE_JOBCOST_JOB T0
Where
  T0.STATUS Not In (7, 8) AND
  (T0.STARTDATE <= DATEADD(YEAR, -1, GETDATE()) OR T0.STARTDATE is null)

Select T0.JOBID, T0.JOBTITLE, T0.STATUS, T0.STARTDATE, T0.ENTEREDDATE 來自 ENPRISE_JOBCOST_JOB T0 其中 T0.STATUS 不在 (7, 8) 和 (T0.STARTDATE <= DATEADD(YEAR, -1, GETDATE( ) 或 T0.STARTDATE 為空)

暫無
暫無

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

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