Исключение для '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

Вернуться на верх