Alter FUNCTION [dbo].[uf_SplitKeywords]
( @DELIMITER VARCHAR(5),
@LIST VARCHAR(MAX)
)
RETURNS @TABLEOFVALUES TABLE
( ROWID int IDENTITY(1,1),
[VALUE] VARCHAR(MAX)
)
AS
BEGIN
Declare @Pos int
While LEN(@List) > 0
begin
Select @Pos=CHARINDEX(@Delimiter,@List,1)
if @Pos>0
begin
Insert into @TABLEOFVALUES ([Value]) Values (SubString(@List,1,@Pos -1))
Select @LIST = STUFF(@List,1,@Pos ,'')
end
else
begin
Insert into @TABLEOFVALUES ([Value]) Values (@List)
Select @LIST =''
end
end
Return
End
Con chiamata di
Select Distinct b.ArticleID,b.Title,b.Description,b.Details,b.KeyWords from
(
Select * from Article a1
CROSS APPLY [dbo].[uf_SplitKeywords](',',keywords) f1
Where a1.ArticleID=3
) a
Join
(
Select * from Article a2
CROSS APPLY [dbo].[uf_SplitKeywords](',',keywords) f2
) b
on a.Value=b.Value