我期待這返回'C'的值,但它返回'A'。我似乎無法弄清楚爲什麼這不起作用,因爲我的邏輯看起來很合理。案例陳述複雜和/或不按預期工作
DECLARE @WeekStartDay varchar(10)
DECLARE @WeekEndDay varchar(10)
SET @WeekStartDay = 'Saturday'
SET @WeekEndDay = 'Saturday'
SELECT
CASE
WHEN (
((@WeekStartDay = 'Saturday') OR (@WeekStartDay = 'Sunday'))
AND
((@WeekEndDay <> 'Saturday') OR (@WeekEndDay <> 'Sunday'))
)
THEN 'A'
WHEN (
((@WeekEndDay = 'Saturday') OR (@WeekEndDay = 'Sunday'))
AND
((@WeekStartDay <> 'Saturday') OR (@WeekStartDay <> 'Sunday'))
)
THEN 'B'
WHEN (
((@WeekEndDay = 'Saturday') OR (@WeekEndDay = 'Sunday'))
AND
((@WeekStartDay = 'Saturday') OR (@WeekStartDay = 'Sunday'))
)
THEN 'C'
END AS Result
我預期的功能是:
我試圖讓它deteremine
中頻@WeekStartDay =週六或週日,@WeekEndDay IS NOT週六或週日THEN 'A'
如果@WeekEndDay =週六或週日並且@WeekStartDay不是週六或週日那麼'B'
如果@WeekStartDay和@WeekEndDay BOTH =星期六或星期天那麼'C'
從回答嗯看起來像我的邏輯是比我想象的方式更多。
非常感謝您的幫助!哦,哇,是的,這使得嵌套像這樣的案例陳述和使用IN更有意義。我很感激! – thirdcoastx 2011-05-25 14:33:37