我有一個表學科SQL自定義函數調用的其他功能,顯示錯誤
DisciplineID |Discipline_Name
1 | Aquatics
2 | Archery
3 | Athletics
我AVE一個函數,它像(「游泳,射箭」)的字符串,並返回一個表項 游泳 射箭 (基本上分割字符串) 用於該函數如下
CREATE FUNCTION SplitString
(
@Input NVARCHAR(MAX)
)
RETURNS @Output TABLE (
Item NVARCHAR(1000)
)
AS
BEGIN
DECLARE @StartIndex INT, @EndIndex INT, @Character CHAR(1)
SET @StartIndex = 1
SET @Character =','
IF SUBSTRING(@Input, LEN(@Input) - 1, LEN(@Input)) <> @Character
BEGIN
SET @Input = @Input + @Character
END
WHILE CHARINDEX(@Character, @Input) > 0
BEGIN
SET @EndIndex = CHARINDEX(@Character, @Input)
INSERT INTO @Output(Item)
SELECT SUBSTRING(@Input, @StartIndex, @EndIndex - 1)
SET @Input = SUBSTRING(@Input, @EndIndex + 1, LEN(@Input))
END
RETURN
END
GO
另外的其它功能:
create function getdisID
(
@Inp varchar(1000)
)
RETURNS @Output TABLE (
Itemid int
)
as
begin
SELECT DisciplineID
FROM Disciplines
inner JOIN
dbo.SplitString(@Inp) as temp
ON Disciplines.Discipline_Name=temp.Item;
end
在執行第二函數產生錯誤 「包括在函數內無法數據返回到客戶端選擇語句」。
我認爲你想'應用'而不是'加入'功能 – HoneyBadger
@ H oneyBadger你能更清楚一點 – praveenkrishp
[INNER JOIN與表值函數不工作]的可能重複(http://stackoverflow.com/questions/23402316/inner-join-with-table-valued-function-not-工作) –