в чем проблема в моей функции разделения? - PullRequest
0 голосов
/ 03 апреля 2019

Я написал функцию разделения 'abc, def, ghi' это мой ввод, и я хочу разделить запятыми, но я получил неправильный вывод

Можете ли вы решить эту проблему

 alter function splitdata(
 @expression varchar(200),
 @seperator varchar(200)
 )
 RETURNS @SplitedData TABLE(
 splitcol varchar(1000)
 )
 AS
 BEGIN

 DECLARE @startIndex as int=1,@seperatorIndex as int    
 SET @seperatorIndex=CHARINDEX(@seperator,@expression,@startIndex)
 DECLARE @userData varchar(1000)

 WHILE @startIndex<@seperatorIndex
 BEGIN

 SET @userData=(SELECT
 SUBSTRING(@expression,@startIndex,@seperatorIndex-1))
 INSERT INTO @SplitedData VALUES(@userData)
 SET @startIndex=@seperatorIndex+1
 SET @seperatorIndex=CHARINDEX(@seperator,@expression,@startIndex)

 IF @startIndex>@seperatorIndex
 BEGIN

 SET @userData=(SELECT SUBSTRING(@expression,@startIndex,(SELECT 
 LEN(@expression))))
 INSERT INTO @SplitedData VALUES(@userData)

 END

 END
 RETURN

 END

вывод: я получаю вывод, как это

а

азбука, Защита

ГХИ

...