这是我的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。
答案 0 :(得分:0)
aqs_sites表中的一行的State_Name值为空,或者您作为@state_code参数传递的值不返回任何行。
进一步看问题,状态为guam的行将返回空值,该值在函数中被过滤掉