SQL 函数将 0 替换为 Null
Posted
技术标签:
【中文标题】SQL 函数将 0 替换为 Null【英文标题】:SQL Function Replacing 0 with Null 【发布时间】:2011-04-27 13:17:11 【问题描述】:嗨,与我在互联网上找到的相反,我需要将 0 替换为 null,以便在表中我将使用 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
这给了我以下错误:
消息 102,级别 15,状态 1,过程 retunNull,第 6 行 '0' 附近的语法不正确。 消息 102,级别 15,状态 1,过程 retunNull,第 11 行 'END' 附近的语法不正确。
谁能帮助我并引导我走向正确的方向? PS这必须在一个函数中完成,因为它会被多次使用
【问题讨论】:
【参考方案1】:您缺少SET
语句。 SET @num = NULL
和测试应该是IF(@num = '0')
您不能只使用内置的NULLIF
函数而不是创建标量UDF?
【讨论】:
10x,不知道nullif,查了一下觉得有道理。【参考方案2】:SELECT NULLIF(MyColumn, 0)
FROM MyTable
【讨论】:
以上是关于SQL 函数将 0 替换为 Null的主要内容,如果未能解决你的问题,请参考以下文章