SQL Server 2005:如果另一列为空或包含Word,请选择一列

时间:2010-11-15 22:29:35

标签: sql-server sql-server-2005 bids

我正在尝试使用BIDS创建报告。我希望其中一列提供电子邮件地址。我有两个包含电子邮件地址的表。一个包含客户开始与我们开展业务时提供的原始电子邮件地址。另一个表包含他们在网站上提交的可能更新的(备用)电子邮件地址。

有时原始电子邮件地址使用我们公司的域名,因为我的公司用于为没有地址的客户创建电子邮件。

我需要构建一个评估原始电子邮件地址的查询。它需要做两件事:

  1. 如果原始电子邮件地址为空,则需要包含备用电子邮件地址。
  2. 如果原始电子邮件地址包含我们的域名(customer@mydomain.com),则需要包含备用电子邮件地址。
  3. 如果上述两项不是这种情况,则需要吐出原始电子邮件地址。
  4. 查询需要吐出这个评估的是一个名为Email的列。

    可以这样做吗?我应该转向BIDS吗?如果是这样,那么方向是什么?

    提前感谢您的帮助。

2 个答案:

答案 0 :(得分:19)

使用CASE轻松自如。类似的东西:

SELECT whatever1, whatever2, CASE
WHEN originalemail IS NULL THEN alternateemail
WHEN originalemail like '%domainname%' THEN alternateemail
ELSE originalemail
END AS Email
FROM...

答案 1 :(得分:2)

SELECT 

 CASE t1.orgEmail

   WHEN NULL THEN t2.altEmail

   WHEN LIKE '%domainname%' THEN t2.altEmail

   ELSE

      t1.orgEmail

  END AS email

FROM

table1 AS t1, Table2 as t2
相关问题