Пока список с разделителями-запятыми составляет 512 символов или меньше, вы также можете использовать регулярное выражение в этом экземпляре (функции регулярного выражения Oracle, например REGEXP_LIKE()
, ограничены 512 символами):
SELECT id, categories
FROM mytable
WHERE REGEXP_LIKE('c2', '^(' || REPLACE(categories, ',', '|') || ')$', 'i');
В вышеизложенном я заменяю запятые оператором чередования регулярных выражений |
. Если ваш список ограниченных значений уже |
-пределен, тем лучше.