Я ожидаю, что это вернет значение '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
Моя предполагаемая функция:
Я пытаюсь найти его
ЕСЛИ @WeekStartDay = суббота или воскресенье И @WeekEndDay НЕ суббота или воскресенье, ТО "A"
ЕСЛИ @WeekEndDay = суббота или воскресенье И @WeekStartDay НЕ суббота или воскресенье, ТО "B"
ЕСЛИ @WeekStartDay И @WeekEndDay ОБА = суббота или воскресенье ТОГДА 'C'
Хм, судя по ответам, похоже, что моя логика была намного сложнее, чем я думал.