Подстановочный знак числа в пункте «Где» - PullRequest
1 голос
/ 23 февраля 2012

Я пытаюсь добавить подстановочный знак в запрос, чтобы найти число в определенной позиции. Запрос выглядит примерно так:

SELECT SUBMITTER
  FROM BASE_ELEMENT
 WHERE SUBMITTER LIKE 'm_%';

Проблема с этим запросом состоит в том, что он берет все, что начинается с «m» и имеет символ во второй позиции. Мне нужно что-то, что работает как подстановочный знак Unix:

'm[0-9]*'

Я хочу, чтобы он включал m0, m1, m2 и т. Д., Но исключаю ma, mb, mc и т. Д.

Как бы я сделал это в Oracle 10g?

Ответы [ 3 ]

9 голосов
/ 23 февраля 2012

В 10G у вас есть чудо из регулярных выражений .Итак, ваш запрос может быть:

select submitter
  from base_element
 where regexp_like(submitter, '^m[[:digit:]]')

^ привязывает выражение к началу строки, а [[:digit:]] соответствует любой цифре.

2 голосов
/ 23 февраля 2012

Попробуйте использовать функцию REGEXP_LIKE (http://docs.oracle.com/cd/B19306_01/appdev.102/b14251/adfns_regexp.htm).

Ваш случай может быть решен так:

select submitter from base_element where regexp_like( submitter, '^m[0-9]' );

1 голос
/ 23 февраля 2012

Вы можете использовать regexp_like:

where regexp_like(submitter, '^m\d')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...