我仍然在学习SQL,所以这可能看起来是一个非常奇怪的问题,但这是在CASE中使用CASE来检查NULL的最佳方式吗?SQL Server - CASE中CASE检查NULL
@FN_InputDt datetime)
RETURNS varchar(3)
as
BEGIN
DECLARE @Result varchar(3),
@MonthNo int
Set @MonthNo = datepart(m,@FN_InputDt)
Set @Result =
CASE WHEN @FN_InputDt IS NOT NULL then
CASE @MonthNo
WHEN 1 then 'JAN'
WHEN 2 then 'FEB'
WHEN 3 then 'MAR'
WHEN 4 then 'APR'
WHEN 5 then 'MAY'
WHEN 6 then 'JUN'
WHEN 7 then 'JUL'
WHEN 8 then 'AUG'
WHEN 9 then 'SEP'
WHEN 10 then 'OCT'
WHEN 11 then 'NOV'
WHEN 12 then 'DEC'
END
END
RETURN @Result
END
-1,看杰夫的评论,有一个库函数来获取月份名称 – Hogan 2010-07-04 23:44:21
@霍根:是的,这种选择是值得一提的,但它并没有给出与问题中的函数完全相同的结果。 – Guffa 2010-07-05 00:04:45
很高兴知道,它有什么不同? – Hogan 2010-07-09 15:26:06