【问题标题】:SQL Function Replacing 0 with NullSQL 函数将 0 替换为 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这必须在一个函数中完成,因为它会被多次使用

【问题讨论】:

    标签: sql sql-server sql-server-2005 user-defined-functions


    【解决方案1】:

    您缺少SET 语句。 SET @num = NULL 和测试应该是IF(@num = '0')

    您不能只使用内置的NULLIF 函数而不是创建标量UDF?

    【讨论】:

    • 10x,不知道nullif,查了一下觉得有道理。
    【解决方案2】:
    SELECT NULLIF(MyColumn, 0)
    FROM MyTable
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-11-09
      • 1970-01-01
      • 2019-09-27
      • 1970-01-01
      • 2013-05-26
      • 1970-01-01
      • 2022-11-02
      • 2018-12-28
      相关资源
      最近更新 更多