gpt4 book ai didi

sql - 用于排除特定电子邮件域的 Where 子句

转载 作者:行者123 更新时间:2023-12-02 15:56:10 25 4
gpt4 key购买 nike

我有一个电子邮件列表,我想写一个where语句,以排除包含电子邮件域%@icloud.com<的行%@mac.com

For example, emails list looks like this:

abc@gmail.com; 123@hotmail.com

123@outlook.com; abc@icloud.com

123@icloud.com;

123@icloud.com; abc@mac.com

the desired output should look like this:

abc@gmail.com; 123@hotmail.com

123@outlook.com; abc@icloud.com (应返回此行,因为它还包含不在我的排除列表中的“@outlook.com”)

最佳答案

鉴于不支持否定前瞻,要实现这一点,需要两个删除不需要的匹配项,然后查找“剩余的任何电子邮件”匹配项:

SELECT column1
,REGEXP_REPLACE(column1, '@((icloud)|(mac))\\.com', '') as cleaned
,REGEXP_LIKE(cleaned, '.*@.*\\.com.*') as logic
FROM VALUES
('abc@gmail.com; 123@hotmail.com'),
('123@outlook.com; abc@icloud.com'),
('123@icloud.com;'),
('123@icloud.com; abc@mac.com');

给出:

<表类="s-表"><头>第 1 列清理逻辑<正文>abc@gmail.com; 123@hotmail.comabc@gmail.com; 123@hotmail.com正确123@outlook.com; abc@icloud.com123@outlook.com; abc正确123@icloud.com;123;错误123@icloud.com; abc@mac.com123; abc错误

可以合并成一行:

,REGEXP_LIKE(REGEXP_REPLACE(column1, '@((icloud)|(mac))\\.com'), '.*@.*\\.com.*') as logic

关于sql - 用于排除特定电子邮件域的 Where 子句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71488540/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com