【问题标题】:How to check the field is empty or not based on alias如何根据别名检查字段是否为空
【发布时间】:2021-01-15 02:37:57
【问题描述】:

我正在编写一个查询以从数据库中获取客户列表。该查询包含一个 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 

【问题讨论】:

  • IS NULL / IS NOT NULL ?不清楚你的意思是“从 SSRS 参数传递”我在这里看不到参数
  • 抱歉应该是:WHERE delivery_type = @delivery_type
  • 仍然没有得到它,参数与用于电子邮件的 A 和 B 有什么关系?请清楚地说明您要做什么
  • 一旦客户选择了delivery_type A,我想退回客户列表没有email,反之亦然...

标签: sql sql-server reporting-services ssrs-2008 ssrs-2012


【解决方案1】:
WHERE delivery_type = @delivery_type AND (
    (@delivery_type = 'A' AND email = '')
    OR
    (@delivery_type = 'B' AND email <> '')
)

【讨论】:

  • 我可以知道更多关于这个声明,或者任何可以帮助我搜索它的关键字
  • 只是标准逻辑和/或逻辑。想想你想要发生的事情,用英语在脑海中表达出来,然后为它编写代码
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-12-28
  • 1970-01-01
  • 2012-02-21
  • 2011-06-29
  • 1970-01-01
相关资源
最近更新 更多