嗨,与我在互联网上发现的相反,我需要用空值替换 0,以便在表中我将有空值而不是 0。
目前我做了以下事情:
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE FUNCTION retunNull(@num nvarchar(255))
RETURNS nvarchar(255)
AS
BEGIN
IF(@num IS '0')
BEGIN
@num = NULL
END
RETURN @num
END
GO
这给了我以下错误:
Msg 102, Level 15, State 1, Procedure retunNull, Line 6 Incorrect syntax near '0'. Msg 102, Level 15, State 1, Procedure retunNull, Line 11 Incorrect syntax near 'END'.
任何人都可以帮助我并引导我走向正确的方向吗?
PS 这必须在一个函数中完成,因为它将被多次使用
最佳答案
您缺少一个 SET
陈述。 SET @num = NULL
并且测试应该是 IF(@num = '0')
你不能只使用内置的 NULLIF
函数而不是创建标量 UDF?
关于SQL 函数用 Null 替换 0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5804728/