是否可以创建一个返回可空字符串的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
答案 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)