Поиск буквенно-цифровых значений с учетом регистра с помощью Regexp_like plsql
Я пытаюсь найти буквенно-цифровое значение в столбце, который чувствителен к регистру.
Я попробовал этот шаблон, но он не работает.
`REGEXP_LIKE ('1000 - 2000 test', '^[0-9]{4} - [0-9]{4} test', 'c')`
Или регистр не учитывает буквенно-цифровые значения?
1 ответ
Решение
Прочтите руководство http://docs.oracle.com/cd/B12037_01/server.101/b10759/conditions018.htm;)
select * from (
select '1000 - 2000 test' a from dual
union all select '1000 - 2123 TEST' a from dual
) where
REGEXP_LIKE(a, '^[0-9]{4} - [0-9]{4} test', 'c');
возврате
1000 - 2000 test
чувствителен к регистру из-за 'c'
Таким образом, приведенное выше дает 1 строку, тогда как ниже, используя 'i'
без учета регистра, дает 2:
select * from (
select '1000 - 2000 test' a from dual
union all select '1000 - 2123 TEST' a from dual
) where
REGEXP_LIKE(a, '^[0-9]{4} - [0-9]{4} test', 'i');
возврате
1000 - 2000 test
1000 - 2123 TEST