Страницы

Поиск по вопросам

вторник, 16 апреля 2019 г.

Запрос на SQL с динамически меняющимися условиями выборки

Есть запрос SQL. Параметры выборки будут всегда одинаковы, но условия выборки могут быть разными.
Требуется эти условия сохранять в БД и затем подставлять, по необходимости, в запрос. Как сделать это, допустим, через PHP я себе могу представить (просто выбираем из таблицы нужное условие и присоединяем к строчке запроса).
Можно ли это реализовать на SQL? Т.е. вернуть данные от стандартного запроса с присоединенными условиями, выбранными из таблицы БД?


Ответ

Да, можно.
Составить SQL запрос можно так же как и в PHP, надо выбрать из таблицы нужное условие и присоединить к строчке запроса. Любой SQL клиент в этом контексте мало чем отличается от PHP клиента, разве что синтаксисом конкантинации строчных значений.
В PL/SQL воспользуйтесь динамическим запросом:
declare sqlStmt varchar2 (32000); result <тип ресультата>; whereCond varchar2 (4000); begin sqlStmt := 'select ... from ... where '; execute immediate sqlStmt||whereCond into result; end;
Но всё вышеизложенное абсолютно не нужно для решения задачи как в вопросе. Надо просто составить только один SQL запрос учитывая условия ранее сохранённые в БД.

Комментариев нет:

Отправить комментарий