SQL 函数用 Null 替换 0

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

嗨,与我在互联网上发现的相反,我需要用空值替换 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/

相关文章:

SQL Azure 无法识别我的聚集索引

sql - 从 VB.NET 调用存储过程的问题

sql-server - SQL Server 2005 按大小自动增长

sql-server-2005 - 在 SQL Server 2005 中编写表索引脚本时删除关系索引选项

java - SQL语句不加单引号( ' ')

mysql - 如何为一行插入和更新多个枚举值?

SQL测试最佳实践

c# - 为什么 asp.net 使用 GUID 列而不是 bigint

sql - SQL Server 2005/2008 中的异步触发器

SQL 脚本语法错误