2013-03-11 77 views
0

對於多條件使用Case語句時遇到問題,我不知道如何嵌套另一個CASE。具有多個條件的SQL計算列案例

  • DateTime柱:Control_OpenDateOwner
  • DateTime柱:Control_ClosedDateRev

計算列:

(case when [Control_ClosedDateRev] IS NULL then '1' else '0' end) 

嘗試我想計算時OPENDATE大於4天開(用today()),截止日期爲空,將1(開放記錄,已開放4天以上)或0如果記錄已關閉或開放時間不足4天,我無法啓動它。

注意:我不熟悉SQL,初學者。試過這個帖子,但它對我來說很困惑。 (Best way to do nested case statement logic in SQL Server

謝謝

+0

您的錯誤消息是什麼? – Kaf 2013-03-11 16:13:40

+0

'今天'不是一個公認的內置函數名稱。每一個我發現簡單的MATT BUSCHE代碼。 – 2013-03-11 16:27:19

+1

在sql-server上沒有這樣的功能。你可以使用'getdate()'。 – Kaf 2013-03-11 16:28:31

回答

1

您可以在CASE語句中使用AND。在這種情況下,您無需執行真正的嵌套CASE聲明

(CASE WHEN [Control_ClosedDateRev] IS NULL AND DateDiff(day,opendate,getDate()) > 4 THEN '1' ELSE '0' END) 
+0

我收到「驗證錯誤」,「今天」不是公認的內置函數名稱。 – 2013-03-11 16:26:34

+1

@EddyV對不起,正確的語法是'getDate()' – 2013-03-11 16:33:49

+0

謝謝馬特! :) – 2013-03-11 16:47:38