#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);