|
|
|
select from select
|
|||
|---|---|---|---|
|
#18+
ASE 12.5 Подскажите пож-та, как можно сделать выборку из набора данных или из выборки. Например: SELECT * FROM (EXECUTE sp_Myproc) или SELECT * FROM (select * from Mytable) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.02.2004, 13:03 |
|
||
|
select from select
|
|||
|---|---|---|---|
|
#18+
Если ASE не поддерживает подзапросы (что меня удивляет), то тут кроме как временными таблицами других вариантов и не предложишь. Насколько я помню, если с подзапроса требуется получить только одно поле, то в ASE сработает такая конструкция: Код: plaintext 1. 2. Иначе только так: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.02.2004, 14:07 |
|
||
|
select from select
|
|||
|---|---|---|---|
|
#18+
ASE поддерживает подзапросы, только вот после FROM - ??? Хорошо, как бы вы посоветовали сделать: У меня есть create procedure myproc_1 as begin select 1 into #mytable end create procedure myproc_2 as begin exec myproc_1 select * from #mytable end Мне нужно во торой процедуре выбрать результат работы первой, только вот вторая процедура даже не хочет создаваться, пишет что не существует #mytable, поэтому мне и надо что-то вроде SELECT * FROM (EXECUTE sp_Myproc) или SELECT * FROM (select * from Mytable) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.02.2004, 14:25 |
|
||
|
select from select
|
|||
|---|---|---|---|
|
#18+
попробуйте вот так: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. ну а насчет почему вторая процедура не создается и других вопросов ответить Вам не могу, я ASE в глаза не видел, все что я о нем знаю, реально сводиться к его совместимости старых версий с MSSQL 6.5, и то в 6.5 много всего было добавлено, чего нет в ASE. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.02.2004, 15:28 |
|
||
|
select from select
|
|||
|---|---|---|---|
|
#18+
create procedure myproc_2 as begin exec myproc_1 select * from #mytable end Интересно а ASA этот финт прокатывает? Как сервер может создать процедуру в которой идет обращение к несуществующим объектам БД? В ASE надо делать так: select cnt = 1 into #mytable go create procedure myproc_2 as begin exec myproc_1 select * from #mytable end go drop table #mytable go Кстати этот вариант все равно не прокатит - после окончания работы myproc_1 таблица #mytable будет уничтожена сервером и myproc_2 вылетит с ошибкой, т.е. надо примерно так: create procedure myproc_1 as begin select cnt = 1 into #mytable exec myproc_2 end go select cnt = 1 into #mytable go create procedure myproc_2 as begin select * from #mytable end go drop table #mytable go И вызывать соответственно myproc_1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.02.2004, 20:31 |
|
||
|
select from select
|
|||
|---|---|---|---|
|
#18+
авторИнтересно а ASA этот финт прокатывает? Как сервер может создать процедуру в которой идет обращение к несуществующим объектам БД? В ASA жестко контролируются на существования обьектов только представления (и это правильно). Процедуры и функции компилируются при старте сервера при первом к ним обращении, соотвествующе в них можно обращаться к любым обьектам БД, если их не существует, то во время их выполнения будет сгенерирована ошибка. Это же касается даже переменных, так как в ASA есть глобальные сессионные переменные. В этом есть и плохие стороны - при компиляции нет контроля и любая ошибка в имени обьекта/переменной будет выявлена только на этапе выполнения. Но хороших сторон больше - возможность создавать и удалять глобальные переменные, видимость темповых таблиц из дочерних ХП, даже если с триггера вызвать ХП, то она увидит таблицы Inserted и Deleted. Включаем сюда до кучи глобальные постоянные сессионные таблицы (их не нужно каждый раз создавать при запуске сервера) и возможность обрабатывать подключения и отключения сессий, и получаем очень неплохие возможности по реализации любой сложности логики силами самой СУБД. Если интересно сравнить возможности ASE и ASA, могу порекомендовать почитать последний номер рассылки по ASA, там как раз все это подробно расписано прямо на примерах. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.02.2004, 21:35 |
|
||
|
select from select
|
|||
|---|---|---|---|
|
#18+
Что-то все мудрят... А что, такое не годится ? SELECT ........, (SELECT .... FROM ......), ........... FROM ........... Т.е. обычный подзапрос. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.02.2004, 18:42 |
|
||
|
|

start [/forum/topic.php?fid=55&fpage=127&tid=2014619]: |
0ms |
get settings: |
9ms |
get forum list: |
11ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
43ms |
get topic data: |
14ms |
get forum data: |
2ms |
get page messages: |
42ms |
get tp. blocked users: |
1ms |
| others: | 252ms |
| total: | 380ms |

| 0 / 0 |

Извините, этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
... ля, ля, ля ...