искать любое число в текстовом поле - PullRequest
0 голосов
/ 18 октября 2018

У меня есть столбец с данными в виде простого текста.Я ищу, чтобы найти любое имя, за которым следуют целое число "Сэм 123", Сэм 597 "и т. Д.

Я пытался

SELECT message, LENGTH(message)
FROM surveys
WHERE LENGTH(MESSAGE) = 6 

, но он возвращает буквенно-цифровые данные.

Ответы [ 2 ]

0 голосов
/ 19 октября 2018

Для всех версий DB2:

select message
from table(values 'Sam 123', 'Sam 597', 'Sam123', 'Sam', '123 Sam') t(message)
where xmlcast(xmlquery('fn:matches($s, "[a-zA-Z]+ [0-9]+")' passing t.message as "s") as int) = 1
0 голосов
/ 18 октября 2018

Начиная с DB2 11.1 вы можете использовать регулярные выражения.Ваш запрос должен выглядеть следующим образом:

select message, length(message)
  from surveys
  where regexp_like(message, '[a-zA-Z]+ [0-9]+')

Это регулярное выражение соответствует:

  • Одна или несколько букв, за которыми следует
  • Один пробел, за которым следует
  • Одна или несколько цифр.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...