Разделить строку запятой в SQL Server 2008

Есть две строкиa а такжеb

a строка содержит запятую. Я хотел бы разделить строку запятой, а затем пройти через каждый элемент.

ЕСЛИb строка содержит любой элемент, который разделенный запятой вернет 0

(например: a ="4,6,8" ; б ="R3799514" посколькуb строка содержит 4, поэтому возвращает 0)

Как этого добиться с помощью хранимой процедуры? Заранее спасибо!

Я видел функцию разделения:

CREATE FUNCTION dbo.Split(@String varchar(8000), @Delimiter char(1))     
returns @temptable TABLE (items varchar(8000))     
as     
begin     
declare @idx int     
declare @slice varchar(8000)     

select @idx = 1     
    if len(@String)0)
        insert into @temptable(Items) values(@slice)     

    set @String = right(@String,len(@String) - @idx)     
    if len(@String) = 0 break     
end 
return     
end

select top 10 * from dbo.split('Chennai,Bangalore,Mumbai',',')
 Aaron Bertrand21 окт. 2012 г., 18:51
 Gregor Primar21 окт. 2012 г., 18:18
Сначала вы должны нормализовать БД.databases.about.com/od/specificproducts/a/normalization.htm

Ответы на вопрос(1)

Решение Вопроса

Следующее будет работать -

DECLARE @A VARCHAR (100)= '4,5,6'
DECLARE @B VARCHAR (100)= 'RXXXXXX'
DECLARE @RETURN_VALUE BIT = 1 --DEFAULT 1


SELECT items
INTO #STRINGS 
FROM dbo.split(@A,',')

IF EXISTS(SELECT 1 FROM #STRINGS S WHERE CHARINDEX(items, @B) > 0)
SET @RETURN_VALUE = 0

PRINT @RETURN_VALUE

DROP TABLE #STRINGS

Вы также можете использоватьСОДЕРЖИТ вместоCHARINDEX -

IF EXISTS(SELECT 1 FROM #STRINGS S WHERE CONTAINS(items, @B))
SET @RETURN_VALUE = 0
 huMpty duMpty12 мая 2014 г., 15:59
Что это за редактирование :)

Ваш ответ на вопрос