我需要检查06-2016中添加的新emailId是否已经存在于数据库之前。
我使用NOT IN运算符编写了查询:
.png
我已经确认当时有新的电子邮件,但它会返回空的结果集。这是为什么?事实上,当我用IN运算符替换NOT IN运算符时,它确实返回了常见的运算符,但不知何故NOT IN表现不正常。
答案 0 :(得分:0)
使用传统的sql方法左连接
IE
with result as (select DISTINCT SF.customer_email
FROM Magento.sales_flat_order SF
WHERE YEAR(TO_DATE(SF.created_at)) = '2016' AND MONTH(TO_DATE(SF.created_at)) = '6' )
, result2 (select DISTINCT SFO.customer_email FROM Magento.Sales_flat_order SFO WHERE TO_DATE(SFO.created_at) <= '2016-05-31')
select result.customer_email from result left join result2 on result.customer_email =result2.customer_email
where result2.customer_emai is NULL OR result2.customer_emai='' OR length(result2.customer_emai) = 0
注意:如果空列值正确处理,result2.customer_emai为NULL就足够了。