在SQL Server函数中返回可空类型

时间:2009-06-30 17:37:05

标签: sql sql-server function

是否可以创建一个返回可空字符串的SQL Server函数?

我想创建一个函数,如果值为0或空字符串,则返回DBNull:

Create FUNCTION [dbo].[SetDBNullNvarChar] (@input nvarchar(1000))
RETURNS (needs to be nullable)
AS
BEGIN
    if (@input = '' OR @input = 0) 
    BEGIN
    RETURN null
    END
return @input
END

2 个答案:

答案 0 :(得分:6)

除非对其施加非空限制,否则SQL中的任何数据类型都可以设置为null。因此,您应该能够使用最适合您需求的任何返回类型......

在您的调用代码中,您必须检查返回的值是否等于DBNull.Value并让您的代码相应地执行操作。

答案 1 :(得分:1)

这对我来说确实会返回NULL

Create FUNCTION [dbo].[SetDBNullNvarChar] (@input nvarchar(1000))
RETURNS NVARCHAR
AS
BEGIN
    if (@input = '' OR @input = 0) 
    BEGIN
    RETURN null
    END
return @input
END

SELECT  [dbo].[SetDBNullNvarChar](0)