powered by simpleCommunicator - 2.0.56     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / Sybase SA 9.x и выше: Вопрос про multiple table expressions
4 сообщений из 4, страница 1 из 1
Sybase SA 9.x и выше: Вопрос про multiple table expressions
    #37335969
Stalker4
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Hi All,

Sybase 12.0.1

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

with recursive
(Q1(...) as select <initial-subquery> union all select <recursive-subquery>),
(Q2(...) as select <initial-subquery> union all select <recursive-subquery>)
select ... from Q2

В Q1 я делаю выборку по дереву, а в Q2 мне надо для каждой строки Q1
сделать дополнительную (древовидную) проверку и строки не выдержавшие этой проверки
не должны быть в конечной выборке.
Проблема в том, что я не знаю как передать в Q2 для <initial-subquery>
код текущей строки из Q1, что бы было от чего отталкиваться при формировании
в Q2 проверочного дерева.
Единственное, что мне пока пришло в голову, это оформить код Q2 в виде
функции (UDF).
Но хочется обойтись только запросом без использования функции.
...
Рейтинг: 0 / 0
Sybase SA 9.x и выше: Вопрос про multiple table expressions
    #37336950
Фотография ASCRUS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я бы порекомендовал результат древовидного запроса вогнать во времянку и уже по ней провести проверку, что возвращать клиентскому приложению, а что нет. Можно конечно наверное извернуться и написать все одним запросом, но в дальнейшем это будет означать как минимум, что запрос будет плохо читабельным для его возможного понимания и изменения в будущем и могут появиться проблемы оптимизации работы запроса.
...
Рейтинг: 0 / 0
Sybase SA 9.x и выше: Вопрос про multiple table expressions
    #37337865
Stalker4
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Правильно я понял, что вы предлагаете
создать SP, объявить в ней временную таблицу, загнать в эту таблицу данные
запроса Q1, затем натравить на эту таблицу проверочный запрос Q2 и выдать
конечный результат пользователю ?

Но это ведь сложнее, чем мой возможный вариант с UDF про который я написал
в первом сообщении ...

Или я не так понял ваш совет ?
...
Рейтинг: 0 / 0
Sybase SA 9.x и выше: Вопрос про multiple table expressions
    #37340814
Фотография ASCRUS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Stalker4,

Мой совет сложнее только тем, что кода больше. Но он может оказаться легче в читабельности и производительности. С SQL можно сказать не всегда работает принцип "Чем меньше кода, тем легче и надежнее". Это конечно философский вопрос, но при проектировании логики в РСУБД в отличие от императивных языков, я в первую очередь смотрю на производительность и читабельность (то есть понимание логики) кода, а уже потом на его универсальность, размеры и прочее.
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / Sybase SA 9.x и выше: Вопрос про multiple table expressions
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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