我想做的是执行简单的查询以排除不必要的数据,由于某些要求我必须使用函数来执行它,让我们看看我的示例数据和查询
我表中的示例数据
ID | TITLE |
1 | A |
2 | B |
3 | C |
我的功能
CREATE FUNCTION ufnTitleValue()
RETURNS NVARCHAR(255)
AS
BEGIN
DECLARE @Val NVARCHAR(MAX)
SELECT @Val = STUFF((SELECT ''',''' + TITLE FROM [MyTable]
WHERE TITLE IN('A','B')
FOR XML PATH('')),1,2,' ')
SET @Val = @Val + ''''
IF @Val IS NULL
RETURN ''
RETURN @Val
END
我的函数返回的结果
'A','B'
我的问题就在这里,当我尝试排除数据时,它不起作用
SELECT TITLE FROM [MYTable] WHERE TITLE NOT IN (ufnTitleValue())
原始结果
TITLE
A
B
C
预期结果
TITLE
C
我很困惑,为什么我的功能不起作用,我的错误是什么?我哪里出错了?