为什么sql函数返回NULL结果?

时间:2018-12-13 16:18:52

标签: sql-server

这是我的SQL函数

IF OBJECT_ID (N'dbo.limit','FN' ) IS NOT NULL
DROP FUNCTION limit;
Go 
create function dbo.limit(@State_code varchar)
RETURNS nvarchar(max)
AS

BEGIN
DECLARE @ret varchar(max) ;
SELECT @ret = State_Name
FROM aqs_sites
WHERE aqs_sites.State_Code = @State_code and State_Name not like '%guam%'
RETURN @ret ;
END

当我以选择的语法调用此函数时

go
select distinct [dbo].limit(aqs_sites.State_Code) from aqs_sites

我得到一个NULL结果,真的不知道。顺便说一句,我使用的是SQL-server 2018。

1 个答案:

答案 0 :(得分:0)

aqs_sites表中的一行的State_Name值为空,或者您作为@state_code参数传递的值不返回任何行。

进一步看问题,状态为guam的行将返回空值,该值在函数中被过滤掉