regex 如何以最佳方式查找包含电子邮件地址的所有字段

hrirmatl  于 2022-12-01  发布在  其他
关注(0)|答案(1)|浏览(138)

我想返回包含电子邮件地址(... LIKE '%@%.%')的所有列的列名。是否有一种方法可以在字段中搜索电子邮件而不进行彻底搜索?也就是说,只要在字段中找到一个电子邮件示例,就会搜索下一个,而不是查看它的所有值?这是为了更好地扩展到大型数据库。
在以下情况下,应返回“Foo”和“Email”,而不搜索其所有记录。

wgx48brx

wgx48brx1#

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

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;

相关问题