Извлечь число между 2 строками в Teradata - PullRequest
0 голосов
/ 05 апреля 2020

Мне нужна помощь в извлечении 49 из этой строки: «7 ДНЕЙ ПОЗЖЕ, 49 ОБНОВЛЕНО» в Teradata, я продолжаю портить STRTOK или regexp_substr. Спасибо

Ответы [ 2 ]

0 голосов
/ 05 апреля 2020

select strtok('7 DAYS LATE 49 UNDERUSE',' ',4);
0 голосов
/ 05 апреля 2020

Вы можете использовать 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)
)

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

TD Manual
SQL Скрипка (Postgres)

...