Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / Запрос в запросе - возможно? / 16 сообщений из 16, страница 1 из 1
06.04.2004, 17:06
    #32471011
Бурундук
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос в запросе - возможно?
Попробовал сделать запрос в запросе типа:
select res.Field_ID
from (select Field_ID from table) as res

Ни фига. :( Sybase ASA 12.0. Это вообще не работает или я что-то делаю не так? Кстати, если после from вместо селекта в скобках поставить вызов хранимой процедуры - работать будет? В интербейзе работает, во всяком случае.
...
Рейтинг: 0 / 0
06.04.2004, 17:08
    #32471014
Бурундук
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос в запросе - возможно?
Сорри, Sybase _ASE_ 12.0
...
Рейтинг: 0 / 0
06.04.2004, 18:56
    #32471181
Burunduk
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос в запросе - возможно?
Собственно задача была решена созданием таблицы, вливанием в нее промежуточного запроса и подстановкой этой таблицы после from - но мне такое решение не нравится. Неужели у транзакт-скл для сайбеса нет возможности делать вложенные запросы? :-(
...
Рейтинг: 0 / 0
06.04.2004, 22:33
    #32471339
mustlive
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос в запросе - возможно?
Извините, а что вообще делает этот запрос?
Код: plaintext
1.
2.
select res.Field_ID 
from (select Field_ID from table) as res 


Каков должен быть его результат?
...
Рейтинг: 0 / 0
07.04.2004, 10:07
    #32471602
c127
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос в запросе - возможно?
2 Burunduk
>Собственно задача была решена созданием таблицы, вливанием в нее промежуточного запроса и подстановкой этой таблицы после from - но мне такое решение не нравится. Неужели у транзакт-скл для сайбеса нет возможности делать вложенные запросы? :-(

А еще вместо таблицы можно создать представление, тогда можно обойтись без вливания туда данных и прочих ужасов. Собственно запрос из запроса есть просто сокращенная записть запроса из представления.
...
Рейтинг: 0 / 0
07.04.2004, 11:18
    #32471771
Бурундук
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос в запросе - возможно?
---
А еще вместо таблицы можно создать представление, тогда можно обойтись без вливания туда данных и прочих ужасов. Собственно запрос из запроса есть просто сокращенная записть запроса из представления.
---
Не суть. Но я правильно понял - подобные конструкции в transact-sql для sybase не работают?
...
Рейтинг: 0 / 0
07.04.2004, 11:23
    #32471777
Бурундук
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос в запросе - возможно?
2mustlive

В данном случае - вернуть поле Field_ID. Запрос упрощен до максимума, поэтому бессмысленен. :-) В общем случае нужно так:

select res1.Field_ID, res1.Field1, res1.Fiels2, res2.Field3, res2.Field4
from (select Field_ID, Field1, Field2 from table1) as res1,
(select Field_ID, Field3, Field4 from table2) as res2
where
res1.Field_ID = res2.Field_ID

---
Sybase ASE 12.0
...
Рейтинг: 0 / 0
07.04.2004, 11:35
    #32471807
_Sania
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос в запросе - возможно?
А чем это отличается от:

select res1.Field_ID, res1.Field1, res1.Fiels2, res2.Field3, res2.Field4
from table1 res1, table2 res2
where res1.Field_ID = res2.Field_ID

В чем вобще смысл такого изменения запроса?

В каком сервере подобая вещь работает?
...
Рейтинг: 0 / 0
07.04.2004, 13:01
    #32471968
mustlive
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос в запросе - возможно?
Вот и я не понял, для чего нужно такой огород городить? Когда я спрашивал, что должен сделать такой запрос, я имел ввиду смысловую нагрузку :)
...
Рейтинг: 0 / 0
07.04.2004, 19:44
    #32472727
Запрос в запросе - возможно?
автор
Попробовал сделать запрос в запросе типа:
select res.Field_ID
from (select Field_ID from table) as res
Ни фига. :( Sybase ASA 12.0.

Такие запросы поддерживаются начиная с 12.5.1. См ниже выдержку из книжки "Whats new in 12.5.1"
SQL derived tables
A SQL derived table is created with a nested select statement, as in the following example:
select * from (select * from table_1) derived_table_1
An equivalent group of SQL statements that uses a view instead of a SQL derived table requires both create and drop statements:
create view view_1 as select * from table_1
select * from view_1
drop view view_1
The group of SQL statements using a view is more complicated, requiring three statements. Also, the benefits of creating a view for only one query are offset by the overhead of making a system catalog entry. The SQL derived tables feature eliminates this overhead by enabling queries to spontaneously create non-persistent tables without needing to drop the tables or make insertions into the system catalog. This makes a SQL derived table more desirable than a group of SQL statements using a view for ad hoc queries. For repeated queries, a SQL derived table used multiple times performs comparably to a SQL statement using a view with a cached definition. A SQL derived table differs from a temporary table in that a SQL derived table exists only for the duration of the query, while a temporary table exists until the server is brought down.
A system catalog entry occurs for a view that uses a SQL derived table:
create view view_1 as
select column_1 from
(select column_1 from table_1) derived_table_1
This is likewise true for a stored procedure that uses a SQL derived table:
create proc sp_foo @name varchar(40) as
select column_1 from
(select column_1 from table_1) derived_table_1

Андрей Хромов
Sybase CIS
...
Рейтинг: 0 / 0
07.04.2004, 20:33
    #32472772
c127
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос в запросе - возможно?
2 Бурундук

>Не суть. Но я правильно понял - подобные конструкции в transact-sql для sybase не работают?

Работают конечно. Запросы из представлений работают в любом SQL сервере, поддерживающем представления.
...
Рейтинг: 0 / 0
08.04.2004, 09:13
    #32473015
Бурундук
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос в запросе - возможно?
2 _Sania, mustlive
Ребят, ну я что, буду сюда сейчас вываливать задачу, которую мне надо решить, структуру десятка таблиц и кучку SQL-кода? Я ж не просил оценивать логику запроса, я спрашивал о конкретной возможности языка.

2 Андрей Хромов
Спасибо, действительно, доки у меня от 12.5.1. Вот блин.
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
21.10.2005, 11:08
    #33336839
Запрос в запросе - возможно?
Вот только что с этим столкнулся =( ASE 12.5 Придется кучу вью делать/дропать ~:((
...
Рейтинг: 0 / 0
21.10.2005, 12:17
    #33337072
MasterZiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос в запросе - возможно?
Андрей_воркВот только что с этим столкнулся =( ASE 12.5 Придется кучу вью делать/дропать ~:((

Лучше подняться на версию выше, тем более что 12.0 скоро того, отомрет.
...
Рейтинг: 0 / 0
21.10.2005, 22:56
    #33338428
Mike Evteev
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос в запросе - возможно?
А вот у меня Adaptive Server Enterprise/12.5.0.

Это ASE я так понимаю...
...
Рейтинг: 0 / 0
23.10.2005, 21:57
    #33339228
MasterZiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос в запросе - возможно?
Mike EvteevА вот у меня Adaptive Server Enterprise/12.5.0.
Это ASE я так понимаю...
Ну первые буквы составьте вместе, того, что у вас ...
...
Рейтинг: 0 / 0
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / Запрос в запросе - возможно? / 16 сообщений из 16, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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