Мне нужно получить 5 столбцов данных из таблицы в моей базе данных оракула. Перед выполнением запроса пользователь имеет возможность фильтровать (я думаю, это правильное слово) столбцы. Таким образом, пользователь может сказать, что он не суетливый и возвращает все записи, или может сказать только, где столбец содержит определенную запись.Как фильтровать много столбцов в oracle sql
Вещь, с которой я борюсь, состоит в том, что у меня есть 5 столбцов, и это касается каждого столбца. И если пользователь выбирает что-то конкретное для всех 5 столбцов, тогда возвращаемый результат должен иметь только записи, которые содержат эту конкретную вещь для всех 5 столбцов, т. Е. «И» между всеми критериями поиска.
Надеюсь, я достаточно подробно объяснил это.
Вот что я до сих пор и не работает полностью:
select column1, column2, column3, column4, column5 from the_table where
(not exists (select * from the_table where column1=$P{COLUMN1}) or column1=$P{COLUMN1}) AND
(not exists (select * from the_table where column2=$P{COLUMN2}) or column2=$P{COLUMN2}) AND
(not exists (select * from the_table where column3=$P{COLUMN3}) or column3=$P{COLUMN3}) AND
(not exists (select * from the_table where column4=$P{COLUMN4}) or column4=$P{COLUMN4}) AND
(not exists (select * from the_table where column5=$P{COLUMN5}) or column5=$P{COLUMN5})
ORDER BY column4 DESC
Параметры $ P {} вводятся пользователем в отчете яшмы.