|
|
|
Можно ли проще ?
|
|||
|---|---|---|---|
|
#18+
Уважаемые знатоки. В колонке содержится текст типа 1+2+3. Надо это вычислить. Делаю так: create table #A(i int, c varchar(100)) insert into #A(i,c) values(null,'1+2'); insert into #A(i,c) values(null,'10+20'); declare @i int, @c varchar(100), @csql nvarchar(100) declare crs cursor for select i, c from #A for update open crs fetch next from crs into @i,@c while @@FETCH_STATUS = 0 begin set @csql='set @i='+@c exec sp_executesql @csql, N'@i int out', @i = @i out update #A set i=@i where current of crs fetch next from crs into @i,@c end close crs deallocate crs select * from #A drop table #A Можно ли проще? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.09.2002, 13:46:25 |
|
||
|
Можно ли проще ?
|
|||
|---|---|---|---|
|
#18+
Не знаю будет ли это быстрей, хотя почти уверен в этом, но можно строку можно представить в виде таблицы (вчера я в топике " опубликовал функцию "F_CODES_IN_TABLE". Остается только\r Код: plaintext Конечно если у Вас не только "+" функцию надо доработать. Ну и конечно надо тип поля "code" поменять. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.09.2002, 06:43:04 |
|
||
|
Можно ли проще ?
|
|||
|---|---|---|---|
|
#18+
Блин теги расставил слегка непрваильно!!!-:). Короче все что синим это ссылка туда где есть эта функция. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.09.2002, 08:43:57 |
|
||
|
Можно ли проще ?
|
|||
|---|---|---|---|
|
#18+
Сомневаюсь, что будет быстрее, но короче точно :) Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. Ну и если в поле для выражения возможно значение Null или пустая строка, то перед циклом надо дать команду Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.09.2002, 09:36:54 |
|
||
|
Можно ли проще ?
|
|||
|---|---|---|---|
|
#18+
Написать расширенную процедуру которая делает вычисления по строке. Затем описать функцию которая её вызывает. Тогда можно будет прямо в один апдейт всё уложить. У меня готовых решений такой задачи нет (пока не требовалось). Но в принципе вещь полезная. Ели бы кто поделился... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.09.2002, 11:10:39 |
|
||
|
|

start [/forum/topic.php?fid=46&msg=32048614&tid=1820543]: |
0ms |
get settings: |
5ms |
get forum list: |
12ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
58ms |
get topic data: |
6ms |
get forum data: |
2ms |
get page messages: |
26ms |
get tp. blocked users: |
1ms |
| others: | 194ms |
| total: | 308ms |

| 0 / 0 |
