|
Как перебрать строку!?Помогите, плиз!
|
|||
---|---|---|---|
#18+
Есть строка типа 34.89;23.78;56; и т.д. Разделитель ";". В курсоре хочу перебрать значения из этой строки, но че-то запутался со стринговыми функциями. У кого была аналогичная ситуации ,посоветуйте что-то.Заранее спасибо! ... |
|||
:
Нравится:
Не нравится:
|
|||
12.01.2001, 14:39 |
|
Как перебрать строку!?Помогите, плиз!
|
|||
---|---|---|---|
#18+
Советую почитать внимательно документацию на функции CHARINDEX и SUBSTRING. Другие строковые функции в данном случае не нужны. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.01.2001, 14:54 |
|
Как перебрать строку!?Помогите, плиз!
|
|||
---|---|---|---|
#18+
Нельзя бы с конкретным примером? ... |
|||
:
Нравится:
Не нравится:
|
|||
12.01.2001, 15:17 |
|
Как перебрать строку!?Помогите, плиз!
|
|||
---|---|---|---|
#18+
А вот его пилотка! ------------------ DECLARE @Str char(255) DECLARE @I int SET @Str='34.89;23.78;56;' SET @I=0; WHILE LTRIM(@Str)<>'' BEGIN SET @I=CHARINDEX(';',@Str) PRINT SUBSTRING(@Str,1,@I-1) SET @Str=SUBSTRING(@Str,@I+1,255) END ------------------------------------- 34.89 23.78 56 Желаю удачи! И, к стати, со Старым Новым Годом! ... |
|||
:
Нравится:
Не нравится:
|
|||
12.01.2001, 15:58 |
|
Как перебрать строку!?Помогите, плиз!
|
|||
---|---|---|---|
#18+
Как-то тут был предложен довольно красивый метод, может подойдет. Суть в том, что разбирать ничего не нужно. declare @s varchar(200),@ss varchar(200) select @s='34.89;23.78;56' create table #t(c varchar(50)) select @ss='insert #t select "'+replace(@s, ';', '" insert #t select "')+'"' exec(@ss) В результате мы получим таблицу с нужными значениями ... |
|||
:
Нравится:
Не нравится:
|
|||
12.01.2001, 16:20 |
|
|
start [/forum/topic.php?fid=46&msg=32001514&tid=1827478]: |
0ms |
get settings: |
12ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
45ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
41ms |
get tp. blocked users: |
1ms |
others: | 265ms |
total: | 400ms |
0 / 0 |