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的主要内容,如果未能解决你的问题,请参考以下文章

有关sql 将null值转为空串类型的函数

isnull函数

sql如何空值替换成null?

sql 创建视图常用的几种sql函数

通过 SQL Pivot 将“NULL”值替换为“0”

SQL-字符串运算符和函数