powered by simpleCommunicator - 2.0.40     © 2025 Programmizd 02
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Результат SP в view
7 сообщений из 7, страница 1 из 1
Результат SP в view
    #32002119
Иринка
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Люди добрые! Никак не могу найти, можно ли хоть как-нибудь использовать хранимую процедуру для преобразования значения поля при создании view?
Проблема такая: есть поле А таблицы со значением 'xxxxx', есть хранимая процедура, которая преобразует его в значение 'yyyyyy'. Надо создать такой view, чтобы результат был
A
----
yyyyyy
Понятно, что нельзя просто записать
SELECT имя_процедуры(A), но как-нибудь можно добиться подобного результата?
...
Рейтинг: 0 / 0
Результат SP в view
    #32002120
Staple
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Конечно, можно.
Так прямо и пиши:
Select преобразование(A) (например, 'Вот такая дребедень: ' + ltrim(str(log(sqrt((sin(A)+25)))))) From table1
Если бы ты подробнее написала, что за преобразование, то и ответ был бы подробнее.
...
Рейтинг: 0 / 0
Результат SP в view
    #32002122
Иринка
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Преобразование такое:
есть строка длиной 7 символов, содержащая числа от 1 до 7 в порядке возрастания и/или пробелы, например '123 67'. Необходимо преобразовать ее к виду '1-3;6-7'. Исходная строка может содержать любые комбинации чисел и пробелов от 7 пробелов до строки '1234567'.
Надо эту строку записать в виде интервалов. Я ничего умнее использования циклов придумать не могу. Буду безгранично благодарна, если кто-нибудь подскажет, как это преобразование сделать другим способом.
...
Рейтинг: 0 / 0
Результат SP в view
    #32002125
Фотография SergSuper
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вы будете смеяться, но это работает

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


циклы им панимашь подавай...
...
Рейтинг: 0 / 0
Результат SP в view
    #32002129
Фотография SergSuper
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пардон, можно чуть покороче сделать

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
...
Рейтинг: 0 / 0
Результат SP в view
    #32002131
Bhbyrf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Я поражена в самое сердце! Это действительно работает!!! Спасибо!!!!
Так как благодарность действительно безгранична, то материализовать ее совершенно невозможно
...
Рейтинг: 0 / 0
Результат SP в view
    #32002136
Фотография Garya
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Небольшое дополненьице. Подобные задачи вообще решаются не с помощью хранимых процедур, а спомощью пользовательских функций (имеется в виду универсальное решение на циклах). В версии 7.0 такая возможность отсутствует, однако она появилась в версии MS SQL Server-2000.
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Результат SP в view
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]