Исключение для 'NOT LIKE' в Oracle_SQL
В базе данных имеется множество таблиц с именем 'D_...'. В поисковом запросе все таблицы с именем 'D_%' должны быть проигнорированы, кроме одной. Как обработать это исключение?
большое спасибо Исключение для 'NOT LIKE' в Oracle_SQL
Если я правильно вас понял, вам нужно что-то вроде этого sql. Добавление опции escape в предложение not like заставит oracle рассматривать "_" как простой символ.
select *
from user_tables
where table_name not like 'D/_%' escape '/'
or table_name in ('YOUR_EXCEPTION_TABLE_NAME')
;
Вы можете использовать NOT LIKE
и убрать подчеркивание:
SELECT *
FROM your_table
WHERE your_column NOT LIKE 'D\_%' ESCAPE '\';
Что для данных примера:
CREATE TABLE your_table (your_column) AS
SELECT 'ABC' FROM DUAL UNION ALL
SELECT 'DEF' FROM DUAL UNION ALL
SELECT 'D_XYZ' FROM DUAL;
Выходы:
YOUR_COLUMN ABC DEF
db<>fiddle here