Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Как вставить разделители между символами строки  [new]
Джек
Member

Откуда:
Сообщений: 574
Добрый день!
Можно ли средствами Transact SQL из строки сформировать строку с разделителями между каждым символом?
Заранее спасибо!
4 июн 13, 14:45    [14389249]     Ответить | Цитировать Сообщить модератору
 Re: Как вставить разделители между символами строки  [new]
Сергей Викт.
Member

Откуда: Москва
Сообщений: 888
Джек
Добрый день!
Можно ли средствами Transact SQL из строки сформировать строку с разделителями между каждым символом?
Заранее спасибо!

declare @str varchar(max),@i int,@str2 varchar(max)
set @str='asdfjkjha 56g'
SET @i=0
SET @str2=N''
WHILE @i<LEN(@str) BEGIN
	set @str2=@str2+SUBSTRING(@str,@i,1)+';'
	SET @i=@i+1
END
SELECT @str2


Может коряво, но тоже что-то:)
4 июн 13, 14:58    [14389340]     Ответить | Цитировать Сообщить модератору
 Re: Как вставить разделители между символами строки  [new]
Сергей Викт.
Member

Откуда: Москва
Сообщений: 888
declare @str varchar(max),@i int,@str2 varchar(max)
set @str='asdfjkjha 56g'
SET @i=1
SET @str2=N''
WHILE @i<LEN(@str)+1 BEGIN
	set @str2=@str2+SUBSTRING(@str,@i,1)+';'
	SET @i=@i+1
END
SELECT @str2


LEN+1 только и @i=1
4 июн 13, 14:59    [14389350]     Ответить | Цитировать Сообщить модератору
 Re: Как вставить разделители между символами строки  [new]
Джек
Member

Откуда:
Сообщений: 574
Спасибо большое!
4 июн 13, 15:01    [14389362]     Ответить | Цитировать Сообщить модератору
 Re: Как вставить разделители между символами строки  [new]
iap
Member

Откуда: Москва
Сообщений: 47142
CREATE TABLE #T(ID INT NOT NULL IDENTITY, F VARCHAR(100));
INSERT #T(F) VALUES('AA&AAAA'),('BBBB<BB'),('CCC>CCC'),('DD'),('E');
SELECT T.ID
,F=STUFF(
(
 SELECT '|'+SUBSTRING(T.F,V.number,1)
 FROM master.dbo.spt_values V
 WHERE V.type='P' AND V.number BETWEEN 1 AND LEN(T.F)
 FOR XML PATH(''),TYPE
).value('.','varchar(8000)')
,1,1,'')
FROM #T T;
4 июн 13, 15:07    [14389402]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить