I have created a function in my database using this query:

```
CREATE FUNCTION dbo.fnSplit(
    @sInputList VARCHAR(MAX) -- List of delimited items
  , @sDelimiter VARCHAR(MAX) = ',' -- delimiter that separates items
) RETURNS @List TABLE (item VARCHAR(MAX))

BEGIN
DECLARE @sItem VARCHAR(MAX)
WHILE CHARINDEX(@sDelimiter,@sInputList,0) <> 0
 BEGIN
 SELECT
  @sItem=RTRIM(LTRIM(SUBSTRING(@sInputList,1,CHARINDEX(@sDelimiter,@sInputList,0)-1))),
  @sInputList=RTRIM(LTRIM(SUBSTRING(@sInputList,CHARINDEX(@sDelimiter,@sInputList,0)+LEN(@sDelimiter),LEN(@sInputList))))

 IF LEN(@sItem) > 0
  INSERT INTO @List SELECT @sItem
 END

IF LEN(@sInputList) > 0
 INSERT INTO @List SELECT @sInputList -- Put the last item in
RETURN
END
GO

```

And SQL Server returned : `Command(s) completed successfully.`

Then I tried to run this query:

```
SELECT * FROM maj_Posts a
WHERE FeedID = (SELECT dbo.fnSplit(b.FeedIDs) FROM maj_Magazines b WHERE OwnerID = 1)
ORDER BY countOfComments DESC 

```

It returned an error: `Msg 4121, Level 16, State 1, Line 1
Cannot find either column "dbo" or the user-defined function or aggregate "dbo.fnSplit", or the name is ambiguous.`

**Note that `b.FeedIDs` is an string contains comma-separated numbers, like this : `1,2,4`**

**And I want to get rows from `maj_Posts` which their `a.FeedID` is one of the numbers in `b.FeedIDs`...** (For example, if `b.FeedIDs` is `1,2,4`, I need rows from `maj_Posts` that their `FeedID` is 1 or 2 or 4.)

What is the problem?