【发布时间】:2021-02-17 20:39:06
【问题描述】:
我查询的目的是计算具有特定域的关联电子邮件地址的数量。我认为虽然我已经将其与应有的相反,因为我的结果集对两个字段都产生了零计数。
电子邮件地址可能类似于:mike@microsoft.com。我想对共享 Microsoft 电子邮件域的所有电子邮件地址进行计数(对于 AOL/Yahoo 也是如此)。我不确定从这里去哪里 - 有什么想法吗?
select
count(case when Email in ('%microsoft.com','%live.com','%outlook.com','%hotmail.com','%msn.com','%passport.com')
then Email end) as 'Microsoft',
count(case when Email in ('%yahoo.com','%ymail.com','%yahoomail.com','%aol.com','%cs.com','%netscape.com','%verizon.net','%verizon.com','%bellatlantic.net','%gte.net','%managedmail.com')
then Email end) as 'AOL_Yahoo',
'2021-02-15' as [Date]
from
IP_Warming_Day_1_New_Registrants
【问题讨论】:
-
简单的答案是因为 IN 不使用与 LIKE 相同的模式匹配逻辑。通过删除聚合并将实际的电子邮件列添加到选择列表中,您将更清楚地看到这一点。
标签: sql sql-server tsql