2015-01-28 3 views
2

моя база данных состоит из двух столбцов и выглядит какBig Query: извлечь определенное количество знаков после текста

Название/Описание

Анна/Дом, TEL: 123-45678, факс: 123- 45679

Бен/Школа, нет телефона, нет FAX

Clair/Работа, TEL: 987-65432, Факс: 987-45679

Dave/Home, TEL: 147-85 236, no ФАКС

В конечном итоге, я хочу получить только тех парней, у которых есть номер телефона и соответствующий номер. Если в конечном итоге выглядеть

Название/Описание

Анна/TEL: 123-45678

Clair/TEL: 987-65432

Dave/TEL: 147-85236

Но теперь все мои попытки с left() или right() были не очень успешными.

как

справа (Описание, 13)

, но это работает только, если номер телефона был последней записи во всех строках.

Также

слева (Описание, 13)

не приводит также, так как телефонный номер не в начале.

Спасибо!

функция извлечения
+0

Пожалуйста, добавьте ваши попытки , – Pentium10

ответ

3

регулярное выражение позволит вам это сделать, то есть

select regexp_extract(
    'Clair/ Job,TEL:987-65432, Fax:987-45679', 
    r'TEL:(\d\d\d-\d\d\d\d\d)') 

(обратите внимание, что шаблон регулярного выражения с префиксом «г», чтобы сделать его сырой строковый литерал)

Смежные вопросы