Click here to Skip to main content
15,892,537 members
Please Sign up or sign in to vote.
0.00/5 (No votes)
See more:
Hi,
I have a table with data as below.

NO ID
-- ------
1 baca
2 ada
3 ebe
4 ec


select column ID between 1 and 4.then pass each
row of ID column into below function as

select distinct Val from dbo.ParseValues('baca','')
where Val !=''


SQL
CREATE FUNCTION ParseValues1
(@String varchar(8000), @Delimiter varchar(10) )
RETURNS @RESULTS TABLE (ID int identity(1,1), Val varchar(50))
AS
BEGIN
DECLARE @Value varchar(100)
WHILE @String is not null
BEGIN
SELECT @Value=CASE WHEN PATINDEX('%'+@Delimiter+'%',@String) >0 THEN LEFT(@String,PATINDEX('%'+@Delimiter+'%',@String)-1) ELSE @String END, @String=CASE WHEN PATINDEX('%'+@Delimiter+'%',@String) >0 THEN SUBSTRING(@String,PATINDEX('%'+@Delimiter+'%',@String)+LEN(@Delimiter),LEN(@String)) ELSE NULL END
INSERT INTO @RESULTS (Val)
SELECT @Value
END
RETURN
END

it give distinct ID from each row.

then combine each row result into a table and get result table as below

ID
--
b
a
c
a
d
e
b

then, finally find distinct count of ID column as 5(a,b,c,d,e).

how to write a stored procedure for getting above result?

thanks.
Posted
Updated 6-Feb-13 22:11pm
v5

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900