Как искать что-то вроде объявленного значения в Big Query SQL?

#sql #google-bigquery

#sql #google-bigquery

Вопрос:

Итак, у меня есть DECLARE значения в запросе, и мне интересно, как я мог бы сделать это, чтобы я мог искать что-то LIKE по имени. Так, например:

 DECLARE Name STRING DEFAULT 'MI'

SELECT DISTINCT
  Employee,
  Pay,
  Date
FROM
  Temp_Table

WHERE
  Employee LIKE Name
  

При этом я ничего не получаю, когда знаю из имеющихся у меня данных, MI что в именах есть несколько. Я также пытался делать:

 WHERE
  Employee LIKE '%'   Name   '%'
  

Но это выдает следующую ошибку:

 Query error: No matching signature for operator   for argument types: STRING, STRING. Supported signatures: INT64   INT64; FLOAT64   FLOAT64; NUMERIC   NUMERIC; DATE   INT64; INT64   DATE
  

Есть ли в любом случае, что я могу искать что-то LIKE DECLARE значение? Или мне нужно будет выполнить запрос без DECLARE значения?

Заранее благодарю!!

Комментарии:

1. ANSI SQL str1 || str2 предназначен для конкатенации. Некоторые продукты имеют concat(str1, str2) .

2. … и BigQuery поддерживает оба вышеперечисленных

3. Отлично! Это помогло, большое вам спасибо!!

Ответ №1:

В качестве опции — вы можете использовать REGEXP_CONTAINS, как в примере ниже

 DECLARE Name STRING DEFAULT 'MI'

SELECT DISTINCT
  Employee,
  Pay,
  Date
FROM
  Temp_Table
WHERE
  REGEXP_CONTAINS(UPPER(employee), name);