Поиск буквенно-цифровых значений с учетом регистра с помощью 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
Другие вопросы по тегам