首页 > 解决方案 > 如何在 Big Query SQL 中搜索声明值之类的内容?

问题描述

因此,我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值的情况下进行查询?

先感谢您!!

标签: sqlgoogle-bigquery

解决方案


作为一个选项 - 您可以使用 REGEXP_CONTAINS 如下例所示

DECLARE Name STRING DEFAULT 'MI'

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

推荐阅读