Результат SP в view

Иринка
Дата: 09.02.2001 13:29:43
Люди добрые! Никак не могу найти, можно ли хоть как-нибудь использовать хранимую процедуру для преобразования значения поля при создании view?
Проблема такая: есть поле А таблицы со значением 'xxxxx', есть хранимая процедура, которая преобразует его в значение 'yyyyyy'. Надо создать такой view, чтобы результат был
A
----
yyyyyy
Понятно, что нельзя просто записать
SELECT имя_процедуры(A), но как-нибудь можно добиться подобного результата?
Staple
Дата: 09.02.2001 13:48:01
Конечно, можно.
Так прямо и пиши:
Select преобразование(A) (например, 'Вот такая дребедень: ' + ltrim(str(log(sqrt((sin(A)+25)))))) From table1
Если бы ты подробнее написала, что за преобразование, то и ответ был бы подробнее.
Иринка
Дата: 09.02.2001 14:56:17
Преобразование такое:
есть строка длиной 7 символов, содержащая числа от 1 до 7 в порядке возрастания и/или пробелы, например '123 67'. Необходимо преобразовать ее к виду '1-3;6-7'. Исходная строка может содержать любые комбинации чисел и пробелов от 7 пробелов до строки '1234567'.
Надо эту строку записать в виде интервалов. Я ничего умнее использования циклов придумать не могу. Буду безгранично благодарна, если кто-нибудь подскажет, как это преобразование сделать другим способом.
SergSuper
Дата: 09.02.2001 16:15:53
Вы будете смеяться, но это работает

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


циклы им панимашь подавай...
SergSuper
Дата: 09.02.2001 16:53:27
Пардон, можно чуть покороче сделать

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
Bhbyrf
Дата: 09.02.2001 17:21:54
Я поражена в самое сердце! Это действительно работает!!! Спасибо!!!!
Так как благодарность действительно безгранична, то материализовать ее совершенно невозможно
Garya
Дата: 09.02.2001 18:55:42
Небольшое дополненьице. Подобные задачи вообще решаются не с помощью хранимых процедур, а спомощью пользовательских функций (имеется в виду универсальное решение на циклах). В версии 7.0 такая возможность отсутствует, однако она появилась в версии MS SQL Server-2000.