Hi all, in this code snippet I will show how to split(,) separated value in sql server:
- Create FUNCTION [dbo].[Split_Function]
- (@String varchar(MAX),@ImageNameByUser varchar(MAX)=null, @Delimiter char(1),@QuestionId bigint,@ID1 int)
- returns @temptable TABLE (RightOptions varchar(MAX),NotInUse varchar(MAX),QuestionId bigint,QuestionOptionId bigint,RightAnswerId bigint)
- as
- begin
- declare @idx int
- declare @slice varchar(8000)
-
- ,@slice2 varchar(8000)
- ,@idx2 int
-
- select @idx = 1
- select @idx2 = 1
- if len(@String)<1 or @String is null return
- while @idx!= 0
- begin
- set @idx = charindex(@Delimiter,@String)
- set @idx2 = charindex(@Delimiter,@ImageNameByUser)
- if @idx!=0
- set @slice = left(@String,@idx - 1)
- else
- set @slice = @String
- if @idx2!=0
- set @slice2 = left(@ImageNameByUser,@idx2 - 1)
- else
- set @slice2 = @ImageNameByUser
-
-
-
- if(len(@slice)>0)
- BEGIN
- SET @ID1=@ID1+1
- declare @RightAnsId bigint
- Select @RightAnsId=isnull(QuestionOptionId,0) from tblQuestionOption where OptionDetail = LTRIM(RTRIM(@slice)) And QuestionId=@QuestionId
- insert into @temptable(RightOptions,NotInUse,QuestionId,QuestionOptionId,RightAnswerId)
- values(LTRIM(RTRIM(@slice)),LTRIM(RTRIM(@slice2)),@QuestionId,@RightAnsId,@ID1)
- END
- set @String = right(@String,len(@String) - @idx)
- if len(@String) = 0 break
- set @ImageNameByUser = right(@ImageNameByUser,len(@ImageNameByUser) - @idx2)
- if len(@ImageNameByUser) = 0 break
- end
- return
- end