|
Результат SP в view
|
|||
---|---|---|---|
#18+
Люди добрые! Никак не могу найти, можно ли хоть как-нибудь использовать хранимую процедуру для преобразования значения поля при создании view? Проблема такая: есть поле А таблицы со значением 'xxxxx', есть хранимая процедура, которая преобразует его в значение 'yyyyyy'. Надо создать такой view, чтобы результат был A ---- yyyyyy Понятно, что нельзя просто записать SELECT имя_процедуры(A), но как-нибудь можно добиться подобного результата? ... |
|||
:
Нравится:
Не нравится:
|
|||
09.02.2001, 13:29 |
|
Результат SP в view
|
|||
---|---|---|---|
#18+
Конечно, можно. Так прямо и пиши: Select преобразование(A) (например, 'Вот такая дребедень: ' + ltrim(str(log(sqrt((sin(A)+25)))))) From table1 Если бы ты подробнее написала, что за преобразование, то и ответ был бы подробнее. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.02.2001, 13:48 |
|
Результат SP в view
|
|||
---|---|---|---|
#18+
Преобразование такое: есть строка длиной 7 символов, содержащая числа от 1 до 7 в порядке возрастания и/или пробелы, например '123 67'. Необходимо преобразовать ее к виду '1-3;6-7'. Исходная строка может содержать любые комбинации чисел и пробелов от 7 пробелов до строки '1234567'. Надо эту строку записать в виде интервалов. Я ничего умнее использования циклов придумать не могу. Буду безгранично благодарна, если кто-нибудь подскажет, как это преобразование сделать другим способом. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.02.2001, 14:56 |
|
Результат SP в view
|
|||
---|---|---|---|
#18+
Вы будете смеяться, но это работает select id, replace( replace( replace( replace( replace( replace( replace( replace( replace( replace( replace( replace( replace( replace( replace( replace( replace( replace( replace( replace( replace( replace( replace(convert(varchar(30),id) ,'1234567','1-7') ,'234567','2-7') ,'34567','3-7') ,'4567','4-7') ,'567','5-7') ,'67','6-7') ,'123456','1-6') ,'23456','2-6') ,'3456','3-6') ,'456','4-6') ,'56','5-6') ,'12345','1-5') ,'2345','2-5') ,'345','3-5') ,'45','4-5') ,'1234','1-4') ,'234','2-4') ,'34','3-4') ,'123','1-3') ,'23','2-3') ,'12','1-2') ,' ',' ' ),' ',';') from sysobjects циклы им панимашь подавай... ... |
|||
:
Нравится:
Не нравится:
|
|||
09.02.2001, 16:15 |
|
Результат SP в view
|
|||
---|---|---|---|
#18+
Пардон, можно чуть покороче сделать select id, replace( replace( replace( replace( replace( replace( replace( replace( replace( replace( replace(convert(varchar(30),id) ,'67','6-7') ,'56-','5-') ,'56','5-6') ,'45-','4-') ,'45','4-5') ,'23-','2-') ,'23','2-3') ,'12-','1-') ,'12','1-2') ,' ',' ' ),' ',';') from sysobjects Ну и как там насчет "безграничной благодарности"? С приветом Сергей sergsuper@mail.ru ... |
|||
:
Нравится:
Не нравится:
|
|||
09.02.2001, 16:53 |
|
Результат SP в view
|
|||
---|---|---|---|
#18+
Я поражена в самое сердце! Это действительно работает!!! Спасибо!!!! Так как благодарность действительно безгранична, то материализовать ее совершенно невозможно ... |
|||
:
Нравится:
Не нравится:
|
|||
09.02.2001, 17:21 |
|
Результат SP в view
|
|||
---|---|---|---|
#18+
Небольшое дополненьице. Подобные задачи вообще решаются не с помощью хранимых процедур, а спомощью пользовательских функций (имеется в виду универсальное решение на циклах). В версии 7.0 такая возможность отсутствует, однако она появилась в версии MS SQL Server-2000. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.02.2001, 18:55 |
|
|
start [/forum/topic.php?fid=46&tid=1827369]: |
0ms |
get settings: |
8ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
40ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
44ms |
get tp. blocked users: |
1ms |
others: | 251ms |
total: | 378ms |
0 / 0 |