Re: Условие селекте

Поиск
Список
Период
Сортировка
От Victor Yegorov
Тема Re: Условие селекте
Дата
Msg-id CAGnEbog6zKs9p1j8HbL-iMMkpx+Qx3nP2_dbwHH5kQHOx+AcsQ@mail.gmail.com
обсуждение исходный текст
Список pgsql-ru-general
вс, 16 апр. 2023 г. в 18:26, vlads-yandex <vlads@ngs.ru>:
Здравствуйте!
Как сделать запрос в posgresql вида 
Select x FROM *
Где * была разная таблица исходя из ввдоных условий
SELECT x FROM CASE WHEN a=2 THEN table1 ELSE table2 END 
не работает.

SQL — декларативный язык, сущности должны быть определены на этапе синтаксического разбора запроса.
Синтаксиса подобного вашему нет.

Решается динамическим построением запроса (PL/pgSQL или любой другой PL) или же формированием запроса на стороне клиента,
т.е. условия вычисляете в приложении.

Однако, можно сформировать SQL-запрос в виде строки (тип text), получить его клиентом и отправить обратно базе на исполнение.
В частности, родной клиент psql имеет псевдо-команду \gexec, которая (1) исполняет запрос (2) получает ответ от базы и (3) отсылает ответ обратно в виде нового запроса.

--
Victor Yegorov

В списке pgsql-ru-general по дате отправления:

Предыдущее
От: Якушев Сергей
Дата:
Сообщение: Re: test
Следующее
От: André Kutepow
Дата:
Сообщение: pg_create_logical_replication_slot, output-plugin