【问题标题】:How to optimally find all fields that contain an email address如何以最佳方式查找包含电子邮件地址的所有字段
【发布时间】:2022-12-01 00:33:12
【问题描述】:

我想返回包含电子邮件地址 (... LIKE '%@%.%') 的所有列的列名。有没有一种方法可以在不穷尽的情况下搜索电子邮件字段?也就是说,一旦在字段中找到一个电子邮件实例,就会搜索下一个实例,而不是查看其所有值?这是为了更好地扩展到大型数据库。

在下面的情况下,应该返回“Foo”和“Email”而不搜索它们的所有记录。

【问题讨论】:

    标签: sql regex google-bigquery


    【解决方案1】:

    您可以在此处使用条件聚合:

    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;
    

    【讨论】:

      猜你喜欢
      • 2019-03-31
      • 1970-01-01
      • 2010-10-27
      • 2010-09-21
      • 1970-01-01
      • 2016-02-21
      • 2013-05-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多