из http://msdn.microsoft.com/en-us/library/ms181765.aspx
SELECT
CASE
WHEN MIN(value) <= 0 THEN 0
WHEN MAX(1/value) >= 100 THEN 1
END
FROM Data
вы можете использовать любое логическое выражение в статье КОГДА
case
when ([dbo].[YearsInService]([DateEngaged],getdate()) = 0) then (0)
when ([dbo].[YearsInService]([DateEngaged],getdate()) = 1) then (4)
when ([dbo].[YearsInService]([DateEngaged],getdate()) = 2) then (8)
when ([dbo].[YearsInService]([DateEngaged],getdate()) = 3) then (12)
when ([dbo].[YearsInService]([DateEngaged],getdate()) = 4) then (32)
when ([dbo].[YearsInService]([DateEngaged],getdate()) = 5) then (40)
when ([dbo].[YearsInService]([DateEngaged],getdate()) = 6) then (48)
when ([dbo].[YearsInService]([DateEngaged],getdate()) = 7) then (56)
when ([dbo].[YearsInService]([DateEngaged],getdate()) = 8) then (104)
when ([dbo].[YearsInService]([DateEngaged],getdate()) = 9) then (117)
when ([dbo].[YearsInService]([DateEngaged],getdate()) >= 10) then (150)
else (-1) end
Вы должны сохранить [dbo]. [YearsInService] ([DateEngaged], getdate()) в переменной перед evaulation tho.
В каких случаях действует ваша текущая учетная запись 'ELSE'? –
@Damien_The_Unbeliever: когда DateEngaged равен NULL – StackTrace