嗨与我在互联网上发现的相反,我需要用null替换0,这样在表格中我将有一个null而不是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 '0'附近的语法不正确。 Msg 102,Level 15,State 1,Procedure retunNull,Line 11 'END'附近的语法不正确。
任何人都可以帮助我并引导我走向正确的方向吗? PS必须在函数中完成,因为它将被多次使用
答案 0 :(得分:12)
您缺少SET
声明。 SET @num = NULL
,测试应为IF(@num = '0')
你不能只使用内置的NULLIF
函数而不是创建标量UDF吗?
答案 1 :(得分:2)
SELECT NULLIF(MyColumn, 0)
FROM MyTable