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

Откуда:
Сообщений: 78
Есть строка
Надо вывести по очереди каждый символ, например: "а45к6"
а
4
5
к
6

Я новенькая, сильно не бейте (и время в обрез)
30 дек 04, 14:50    [1222019]     Ответить | Цитировать Сообщить модератору
 Re: Как вывести каждый символ строки?  [new]
Алексей2003
Member

Откуда: Москва
Сообщений: 5645
create function aaa(@s varchar(10))
returns @t table (s char(1))
as begin
declare @i int
while len(@s)>0 begin
 insert into @t values(left(@s, 1))
 set @s = stuff(@s, 1, 1, '')
end
return
end
go
select * from aaa('asdf')

для спящего время бодрствования равносильно сну
30 дек 04, 14:56    [1222058]     Ответить | Цитировать Сообщить модератору
 Re: Как вывести каждый символ строки?  [new]
Алексей2003
Member

Откуда: Москва
Сообщений: 5645
@i можно не объявлять :)

для спящего время бодрствования равносильно сну
30 дек 04, 14:57    [1222060]     Ответить | Цитировать Сообщить модератору
 Re: Как вывести каждый символ строки?  [new]
BugsBunny
Member

Откуда: GMT+5=EST
Сообщений: 2414
declare @s varchar(10)
set @s='abcdefge'

select 
	substring(@s,k.i,1) as C
from (
select 1 as i union all select 2 union all
select 3 union all select 4 union all
select 5 union all select 6 union all
select 7 union all select 8 union all
select 9 union all select 10
) k
where
	k.i < len(@s)
order by
	k.i
Pros: faster?
Cons: more complex for longer strings
30 дек 04, 21:02    [1223147]     Ответить | Цитировать Сообщить модератору
 Re: Как вывести каждый символ строки?  [new]
BugsBunny
Member

Откуда: GMT+5=EST
Сообщений: 2414
Yeap, should be
...
where
	k.i <= len(@s)
...
30 дек 04, 21:19    [1223157]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить