Извлечь число между двумя строками в Teradata

Мне нужна помощь в извлечении 49 из этой строки: «7 DAYS LATE 49 UNDERUSE» в Teradata, я продолжаю путаться с STRTOK или regexp_substr. Спасибо


person Beautée Keyim    schedule 04.04.2020    source источник
comment
Можете ли вы показать еще несколько примеров данных, охватывающих ваши правила?   -  person dnoeth    schedule 05.04.2020


Ответы (1)


Вы можете использовать REGEXP_SUBSTR для извлечения числа между двумя строками. Вот один из способов:

SELECT REGEXP_SUBSTR(
  '7 DAYS LATE 49 UNDERUSE' -- source string
  '.*\w*\s+(\d+)\w*\s+.*', -- regexp pattern
  1, 1, 'i' -- additional options (start position, match #, case sensitivity)
)

Это даст вам первое совпадающее число между двумя строками, которые предшествуют пробелам и следуют за ними.

Руководство по ТД
Скрипт SQL (Postgres)

person ravioli    schedule 05.04.2020