我有一个emails的列表,我想写一个where语句,以排除包含邮箱域%@icloud.com%@mac.comonly

例如,emails个列表如下所示:

abc@gmail.com; 123@hotmail.com

123@outlook.com; abc@icloud.com

123@icloud.com;

123@icloud.com; abc@mac.com

所需的输出应如下所示:

abc@gmail.com; 123@hotmail.com

123@outlook.com; abc@icloud.com(this row should be returned because it also contains '@outlook.com' which isn't on my exclude list)

推荐答案

如果你喜欢一种更普通的方法而不是Simeon的解决方案

where replace(replace(col,'@icloud.com',''), '@mac.com','') like '%@%'

在Snowflake中,替换字符串是可选的,这将其缩短为

where replace(replace(col,'@icloud.com'), '@mac.com') like '%@%'

Sql相关问答推荐

如何在VB.NET中使用MS SYS根据开始和结束期间日期进行查询

Postgresql:从jsons数组到单个id索引的json

SQL—如何在搜索的元素之后和之前获取元素?

如何使用SQL Server中的Nodes()方法执行与OPENXML相同的操作

Oracle PL/SQL:解决DBMS输出大小限制的问题

如何在SQL中从多个查询进行分组

在Athena中使用regexp提取括号前的字符串值

将 json 列键映射到第二个表中的匹配列值

在 postgres 中插入或更新 jsonb 数组的对象

Select 一个非零值减少重复

给定 3 个键列,从一个表中 Select 另一表中不存在的所有数据

SQL ORACLE - 查找连续天数

使用给定的变量对在循环中执行更新语句

Postgresql 需要一个查询,为我提供所有没有具有特定状态值的子元素的父母

如何在 DAX 中通过 Window 函数应用订单

使用日期和间隔作为键加入 Athena 上的表?

在 MS Access 中连接相关记录

如何通过子 Select 在一次更新(并行数组)中多次更新相同的行

PlSql 陷入死循环

删除具有相同 ID 的重复记录 - Postgresql