【发布时间】:2022-12-01 00:33:12
【问题描述】:
我想返回包含电子邮件地址 (... LIKE '%@%.%') 的所有列的列名。有没有一种方法可以在不穷尽的情况下搜索电子邮件字段?也就是说,一旦在字段中找到一个电子邮件实例,就会搜索下一个实例,而不是查看其所有值?这是为了更好地扩展到大型数据库。
在下面的情况下,应该返回“Foo”和“Email”而不搜索它们的所有记录。
【问题讨论】:
标签: sql regex google-bigquery
我想返回包含电子邮件地址 (... LIKE '%@%.%') 的所有列的列名。有没有一种方法可以在不穷尽的情况下搜索电子邮件字段?也就是说,一旦在字段中找到一个电子邮件实例,就会搜索下一个实例,而不是查看其所有值?这是为了更好地扩展到大型数据库。
在下面的情况下,应该返回“Foo”和“Email”而不搜索它们的所有记录。
【问题讨论】:
标签: sql regex google-bigquery
您可以在此处使用条件聚合:
SELECT
CASE WHEN SUM(Foo LIKE '%@%.%') > 0 THEN 'YES' ELSE 'NO' END AS Foo,
CASE WHEN SUM(Bar LIKE '%@%.%') > 0 THEN 'YES' ELSE 'NO' END AS Bar,
CASE WHEN SUM(Email LIKE '%@%.%') > 0 THEN 'YES' ELSE 'NO' END AS Email,
CASE WHEN SUM(Name LIKE '%@%.%') > 0 THEN 'YES' ELSE 'NO' END AS Name
FROM yourTable;
【讨论】: