Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Использование Подзапроса несколько раз  [new]
* NOV *
Member

Откуда:
Сообщений: 12
Есть к примеру Select:
SELECT name1, name2, name3 = (select .....)
FROM ....
WHERE <здесь предполагается использовать name3 несколько раз>

Вопрос: неужели писать подзапрос? или можно каким-то образом запомнить его выполнение 1 раз и потом просто использовать результат его выполнения? Как это сделать???
31 янв 06, 11:07    [2304126]     Ответить | Цитировать Сообщить модератору
 Re: Использование Подзапроса несколько раз  [new]
vooo
Member

Откуда:
Сообщений: 1316
тут
31 янв 06, 11:11    [2304138]     Ответить | Цитировать Сообщить модератору
 Re: Использование Подзапроса несколько раз  [new]
Andraptor
Member

Откуда: Ukraine, Kharkiv
Сообщений: 291
select name3 into #temp_table from....
31 янв 06, 11:11    [2304140]     Ответить | Цитировать Сообщить модератору
 Re: Использование Подзапроса несколько раз  [new]
tpg
Member

Откуда: Novosibirsk
Сообщений: 23902
Что-то подсказывает мне, что можно всё это переписать с использованием join без всяких подзапросов. Или результат подзапроса, предварительно прочитать в локальную переменную и использовать уже её.
31 янв 06, 11:11    [2304142]     Ответить | Цитировать Сообщить модератору
 Re: Использование Подзапроса несколько раз  [new]
* NOV *
Member

Откуда:
Сообщений: 12
А если так:
SELECT name1, name2, name3 = (select .....), name4=name3-4
FROM ...
Пишет, что нет такого поля (name3)? т.е. получается, что надо опять подзапрос переписывать в отображении name4???
Есть соображения?
31 янв 06, 11:24    [2304204]     Ответить | Цитировать Сообщить модератору
 Re: Использование Подзапроса несколько раз  [new]
Andraptor
Member

Откуда: Ukraine, Kharkiv
Сообщений: 291
Andraptor
select name3 into #temp_table from....


сохрани подзапрос во временную таблицу, а потом с ней связывайся JOIN-ом
31 янв 06, 11:27    [2304221]     Ответить | Цитировать Сообщить модератору
 Re: Использование Подзапроса несколько раз  [new]
Slider_spb
Member

Откуда:
Сообщений: 802
Промежуточные подзапросы можно использовать в MS SQL 2005, в 2000 только через временную таблицу.
31 янв 06, 13:41    [2305103]     Ответить | Цитировать Сообщить модератору
 Re: Использование Подзапроса несколько раз  [new]
SVP
Member

Откуда: Moscow
Сообщений: 147
* NOV *
А если так:
SELECT name1, name2, name3 = (select .....), name4=name3-4
FROM ...
Пишет, что нет такого поля (name3)? т.е. получается, что надо опять подзапрос переписывать в отображении name4???
Есть соображения?


Да, в этом случае надо повторно указывать подзапрос. Или, как уже советовали, выбрать данные во временную таблицу.
31 янв 06, 15:25    [2305651]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить