を使用する必要がありますCASE
。ただし、 CASE は と の両方として使用できるためSWITCH
、IF ... THEN ... ELSEIF ... ELSE
柔軟性が高いことに注意してください。
例えば:
DECLARE @flag INT
SET @flag = 1
-- Switch
SELECT CASE @flag WHEN 1 THEN 'Condition True'
WHEN 0 THEN 'Condition FALSE'
ELSE 'Condition Invalid'
END
-- If / elseif / else
SELECT CASE WHEN @flag = 1
THEN 'Condition True'
WHEN @flag = 0 AND @@SERVERNAME = 'TotallyUnrelatedToFlag'
THEN 'Condition FALSE'
ELSE 'Condition Invalid'
END
あなたの例では、次のようなものが必要なようです
Select
field1,
field2,
CASE WHEN (@CurrentDate = @lastDate and @CurrentWeek = @lastWeek)
THEN @CurrentWeek
ELSE NULL
END As field3