DECLARE @STR_IN nvarchar(max)
DECLARE @STR_START int
DECLARE @STR_END int
SET @STR_START=-1
SET @STR_END=-1
SET @STR_IN =
'
HEAD:SalesOrder:132456;Customer:1412;LINE:1;PRODUCT:PAPER;QTY:120;LINE:2;PRODUCT:TABLES;QTY:4;LINE:3;PRODUCT:CHAIR;QTY:8;
LINE:4;PRODUCT:PC;QTY:5;LINE:5;PRODUCT:PRINTER;QTY:12;LINE:6;PRODUCT:SCANNER;QTY:2;'
DECLARE @STR_OUT TABLE
(
OUTSTRING NVARCHAR(max)
)
WHILE NOT (@STR_END=0)
BEGIN
SET @STR_START = CHARINDEX('LINE', @STR_IN, @STR_START+1)
SET @STR_END = CHARINDEX('LINE', @STR_IN, @STR_START+1)
--select
-- @STR_START,
-- (case when @STR_END=0 then LEN(@STR_IN) else @STR_END end) as RealEnd,
-- (case when @STR_END=0 then LEN(@STR_IN) else @STR_END end)-@STR_START as LenOfSubstring,
-- substring(
-- @STR_IN,
-- @STR_START,
-- (case when @STR_END=0 then LEN(@STR_IN) else @STR_END end)-@STR_START) as Sub_String
insert into @STR_OUT values (substring(@STR_IN,@STR_START,(case when @STR_END=0 then LEN(@STR_IN) else @STR_END end)-@STR_START))
END
select OUTSTRING from @STR_OUT
На этой странице сайта вы можете посмотреть видео онлайн T-SQL: Split a string in to multiple substrings длительностью часов минут секунд в хорошем качестве, которое загрузил пользователь Alex D 31 Октябрь 2018, поделитесь ссылкой с друзьями и знакомыми, на youtube это видео уже посмотрели 1,168 раз и оно понравилось 9 зрителям. Приятного просмотра!