如果真的那麼陳述,是否有可能在案件中有案件陳述?SQL Server 2000如何在案例陳述中形成案例?
case when true then
case when false then 'test0'
else 'test1'
end
else
case when false then 'test2'
else 'test3'
end
end
注意確定在哪裏放置結束語句?
如果真的那麼陳述,是否有可能在案件中有案件陳述?SQL Server 2000如何在案例陳述中形成案例?
case when true then
case when false then 'test0'
else 'test1'
end
else
case when false then 'test2'
else 'test3'
end
end
注意確定在哪裏放置結束語句?
絕對如此。 Case表達式不知道它嵌入在另一個表達式中。每種情況下表達需要一個End關鍵字:
Select Case
When Foo = Bar Then 'Test0'
Else Case
When Gamma = Theta Then 'Test1'
End
End
另一種方式是
Select Case
When Foo = Bar Then 'Test0'
When Gamma = Theta Then 'Test1'
Else 'Blah'
End
當堆疊這樣的,表達式在它們被寫入直到一個。當表達式計算的順序執行,以簡單地堆疊表達式爲true(即,你到達其中一個Then表達式)。
+1:對於後一種情況的示例 – 2011-05-03 04:38:00
使用括號或標識(或兩者)可能很好,所以很明顯哪個case
與哪個end
一致。
case when true then
( case when false then 'test0'
else 'test1'
end
)
else
(case when false then 'test2'
else 'test3'
end
)
end
感謝您添加括號,這肯定有助於將可讀性的邏輯分開。 – 2011-05-08 14:12:14
您的代碼看起來不錯。當解釋器理解嵌入時,可以將End End放在一起。
是的。只要你確保在每個case語句之後放置一個'end'。 – AlexanderMP 2011-05-02 23:22:32