REGEXP_CONTAINS инструкция по порядку и обращению в bigquery

#google-bigquery

#google-bigquery

Вопрос:

Я использую оператор case и REGEXP_CONTAINS.Просто хотел посмотреть, даст ли следующий порядок мне правильный вывод.

  (CASE 
 WHEN REGEXP_CONTAINS(AdSet, '(?i)BUS') THEN "BUS"
 WHEN REGEXP_CONTAINS(AdSet, '(?i)BRA') THEN "BR" 
 WHEN REGEXP_CONTAINS(AdSet, '(?i)DIG') THEN "TR"
 WHEN REGEXP_CONTAINS(AdSet, '(?i)INS') THEN "INS"
 WHEN REGEXP_CONTAINS(AdSet, '(?i)INV') THEN "INV"
 WHEN REGEXP_CONTAINS(AdSet, '(?i)SAV') THEN "SAV"
 WHEN REGEXP_CONTAINS(AdSet, '(?i)TRA') THEN "TR"
 WHEN REGEXP_CONTAINS(AdSet, '(?i)CC')  THEN "CC"    
 WHEN REGEXP_CONTAINS(AdSet, '(?i)HL')  THEN "HL"
 WHEN REGEXP_CONTAINS(AdSet, '(?i)BR')  THEN "BR" 
 
  
 END) as pf
  

Ответ №1:

Кажется правильным, если вы хотите выполнить поиск без учета регистра по ключевому слову, хотя в целом строковые функции более эффективны, чем функции РЕГУЛЯРНЫХ выражений, рассмотрите возможность:

 REGEXP_CONTAINS(AdSet, '(?i)BUS') THEN "BUS"

=>

STRPOS(UPPER(AdSet), 'BUS') <> 0 THEN "BUS"