如何根据别名检查字段是否为空
How to check the field is empty or not based on alias
我正在编写查询以从数据库中获取客户列表。查询包含一个 where 条件来检查客户的电子邮件是否为空。
The original query:
SELECT ID
FROM MAINTABLE m
LEFT JOIN CUSTOMER c
ON m.CUS = c.CUS
WHERE c.EMAIL <> ''
但是,就我而言。 delivery_type是一个SSRS参数,用来表示email字段是否为空
.如果值为 '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 <> '')
)
我正在编写查询以从数据库中获取客户列表。查询包含一个 where 条件来检查客户的电子邮件是否为空。
The original query:
SELECT ID
FROM MAINTABLE m
LEFT JOIN CUSTOMER c
ON m.CUS = c.CUS
WHERE c.EMAIL <> ''
但是,就我而言。 delivery_type是一个SSRS参数,用来表示email字段是否为空 .如果值为 '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 <> '')
)