21.07.2018, 06:38 [+3 UTC]
в нашей команде: 2 884 чел. | участники онлайн: 2 (рекорд: 21)

:: РЕГИСТРАЦИЯ

:: задать вопрос

:: все разделы

:: правила

:: новости

:: участники

:: доска почёта

:: форум

:: блоги

:: поиск

:: статистика

:: наш журнал

:: наши встречи

:: наша галерея

:: отзывы о нас

:: поддержка

:: руководство

Версия системы:
7.47 (16.04.2018)

Общие новости:
13.04.2018, 10:33

Форум:
20.07.2018, 12:27

Последний вопрос:
20.07.2018, 13:35

Последний ответ:
19.07.2018, 14:46

Последняя рассылка:
21.07.2018, 00:45

Писем в очереди:
0

Мы в соцсетях:

Наша кнопка:

RFpro.ru - здесь вам помогут!

РАЗДЕЛ • Базы данных

Установка и настройка серверов баз данных, таблицы и запросы.

[администратор рассылки: Коцюрбенко Алексей aka Жерар (Мастер-Эксперт)]

Лучшие эксперты в этом разделе

solowey
Статус: Студент
Рейтинг: 88
Megaloman
Статус: Академик
Рейтинг: 21
Alexander Babich
Статус: Профессор
Рейтинг: 20

Перейти к консультации №:
 

Консультация онлайн # 65441
Раздел: • Базы данных
Автор вопроса: Юра
Отправлена: 04.12.2006, 03:32
Поступило ответов: 4

Здравствуйте уважаемые эксперты.
Возможно ли сформировать на SQLе такой запрос "А", который бы осуществлял поиск среди записей полученных в результате выполнения другого запроса "В". Иными словами должен выполнятся поиск среди результатов предыдущего поиска.
Заранее всем признателен за любую оказанную помощь.

Состояние: Консультация закрыта

Ответ # 129870 от Grigory

Здравствуйте, Юра!
Если речь идет о SQL Server, то это можно сделать следующим образом: создать функцию, которая будет возвращать таблицу, а потом выбирать из результатов, возвращенных функцией.
Например вот так:
create function func()
returns table
as
return (select * from table1)

а потом вот так:
select * from func()


Консультировал: Grigory
Дата отправки: 04.12.2006, 07:03

Рейтинг ответа:

0

[подробно]

Сообщение
модераторам

Отправлять сообщения
модераторам могут
только участники портала.
ВОЙТИ НА ПОРТАЛ »
регистрация »

Ответ # 129872 от Синельников Сергей

Здравствуйте, Юра!

В самом простои случае
Select * from (Select * from T1). Только не все реализации SQL могут поддерживать такую конструкцию. У Вас СУБД какая ?


Консультировал: Синельников Сергей
Дата отправки: 04.12.2006, 07:05

Рейтинг ответа:

0

[подробно]

Сообщение
модераторам

Отправлять сообщения
модераторам могут
только участники портала.
ВОЙТИ НА ПОРТАЛ »
регистрация »

Ответ # 129914 от Santana

Здравствуйте, Юра!
Если я правильно понял, делаем запрос, получаем результирующий набор, потом из него делаем выборку. Элементарно, первый результат загоняем во временную таблицу... и из нее выбераем

declare #temp (список полей с типами)

insert into #temp (список полей)
select * from worktable

select * from #temp


Консультировал: Santana
Дата отправки: 04.12.2006, 10:35

Рейтинг ответа:

0

[подробно]

Сообщение
модераторам

Отправлять сообщения
модераторам могут
только участники портала.
ВОЙТИ НА ПОРТАЛ »
регистрация »

Ответ # 130031 от Игорь Елизаров

Здравствуйте, Юра!
Да, конечно это можно.
результат запроса это та же таблица и обращаться к ней можно как к любой таблице и даже устанавливать связи. Это иногда очень полезно.

Вот пример:
select * from a1 inner join (select id, cost from b) tt on a1.id=tt.id

то есть выполняется запрос к таблице B , этот запрос именуется tt
и потом используется в запросе к таблице A1 (связь по полю id )

Этот подход можно использовать для поэтапного отлаживания запросов.
Отлаживаем вначале вложенный запрос, а потом основной.

В хранимых процедурах можно в рамках одной процедуры выполнять несколько запросов, сохранять данные во временных таблицах, использовать переменные и т.д.
Поэтому если запросы очень сложные, то нагляднее сделать несколько запросов в хранимой процедуре (проще для восприятия)

С уважением, Игорь


Консультировал: Игорь Елизаров
Дата отправки: 04.12.2006, 23:47

Рейтинг ответа:

0

[подробно]

Сообщение
модераторам

Отправлять сообщения
модераторам могут
только участники портала.
ВОЙТИ НА ПОРТАЛ »
регистрация »

Возможность оставлять сообщения в мини-форумах консультаций доступна только после входа в систему.
Воспользуйтесь кнопкой входа вверху страницы, если Вы зарегистрированы или пройдите простую процедуру регистрации на Портале.

Яндекс Rambler's Top100

главная страница | поддержка | задать вопрос

Время генерирования страницы: 0.13599 сек.

© 2001-2018, Портал RFPRO.RU, Россия
Калашников О.А.  |  Гладенюк А.Г.
Версия системы: 7.47 от 16.04.2018