如何根据别名检查字段是否为空



我正在编写一个从数据库获取客户列表的查询。查询包含用于检查客户电子邮件是否为空的where条件。

The original query:
SELECT ID
FROM MAINTABLE m 
LEFT JOIN CUSTOMER c
ON m.CUS = c.CUS
WHERE c.EMAIL <> ''

无论如何,就我而言delivery_type是一个SSRS参数,用于表示电子邮件字段是否为空。如果值为"A"表示电子邮件字段为空,则"B"不是。我试过下面的查询,但似乎完全错了。有人能在这个问题上帮我吗?

SELECT ID, CASE WHEN c.EMAIL = '' then 'A' WHEN c.EMAIL <> '' THEN 'B' END 'delivery_type'
FROM MAINTABLE m 
LEFT JOIN CUSTOMER c
ON m.CUS = c.CUS
WHERE delivery_type = @delivery_type 
WHERE delivery_type = @delivery_type AND (
(@delivery_type = 'A' AND email = '')
OR
(@delivery_type = 'B' AND email <> '')
)

最新更新