【发布时间】:2020-06-19 08:21:33
【问题描述】:
如果我的表中有记录,我想返回,然后返回,如果该表没有记录,则返回 'America/Chicago'。
错误:消息 102,级别 15,状态 1,过程 ufn_GetGCMoodleTimeZone, 第 18 行 [第 7 行批处理开始] '@MoodleTimeZone' 附近的语法不正确。 消息 102,级别 15,状态 1,过程 ufn_GetGCMoodleTimeZone,第 22 行 [批处理开始第 7 行] 'END' 附近的语法不正确。
ALTER FUNCTION [dbo].[ufn_GetGCMoodleTimeZone]
( @HSATimeZone VARCHAR(250) )RETURNS varchar(250)
AS
BEGIN
DECLARE @MoodleTimeZone varchar(250)
SELECT @MoodleTimeZone = GCMoodleTimeZoneMap.MoodleTimeZone
FROM GCMoodleTimeZoneMap
WHERE GCMoodleTimeZoneMap.HSATimeZone = @HSATimeZone
IF @MoodleTimeZone='NULL'
BEGIN
@MoodleTimeZone='America/Chicago'
END
RETURN @MoodleTimeZone
END
【问题讨论】:
-
@MoodleTimeZone='America/Chicago'-->SET @MoodleTimeZone='America/Chicago'。此外,@MoodleTimeZone='NULL'应该是@MoodleTimeZone IS NULL'。您可以轻松地将其重写为表值函数以提高性能(和可读性)。
标签: sql sql-server date sql-function