Извлечь последние 16 символов из предложения в BigQuery - PullRequest
0 голосов
/ 13 июля 2020

Мне нужно извлечь последние 16 символов из предложения в столбце заголовка таблицы с помощью bigquery. Моя таблица выглядит так:

title

Без комиссии c GST - FY20 H2 Rewards Prospecting - SCC_H2_P25_0620

FB / IG - от P25 до 55 - Retageting - SCC_H2_P27_0625

Я хотел бы получить результат: SCC_H2_P25_0620

                            SCC_H2_P27_0625

Кто-нибудь, пожалуйста, помогите.

Ответы [ 2 ]

1 голос
/ 13 июля 2020

Не очень уверен, как выглядит ваша полная строка. Если это выглядит так:

'Без комиссии в c GST - FY20 H2 Rewards Prospecting - SCC_H2_P25_0620 FB / IG - P25 до 55 - Retageting - SCC_H2_P27_0625'

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

SELECT REGEXP_EXTRACT_ALL('No Commission inc GST - FY20 H2 Rewards Prospecting - SCC_H2_P25_0620 FB/IG - P25 to 55 - Retageting - SCC_H2_P27_0625', "- (SCC[^;]*) FB/IG") AS output;

output SCC_H2_P25_0620

Или вы можете использовать функцию SUBSTR, если вы точно знаете, что ваша строка будет всегда быть одинаковой длины:

SELECT SUBSTR('No Commission inc GST - FY20 H2 Rewards Prospecting - SCC_H2_P25_0620 FB/IG - P25 to 55 - Retageting - SCC_H2_P27_0625', 55, 15) AS output;

output SCC_H2_P25_0620

ура

1 голос
/ 13 июля 2020

BigQuery Standard SQL

SUBSTR(title, LENGTH(title) - 15, 15)   

Выше извлекаются последние 15 символов из столбца заголовка

#standardSQL
WITH test AS (
  SELECT 'No Commission inc GST - FY20 H2 Rewards Prospecting - SCC_H2_P25_0620' title UNION ALL
  SELECT 'FB/IG - P25 to 55 - Retageting - SCC_H2_P27_0625'
)
SELECT SUBSTR(title, LENGTH(title) - 15, 15)
FROM test

вывод

Row f0_  
1   SCC_H2_P25_062   
2   SCC_H2_P27_062   
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...