如何在SQL Server中基于一个或另一个条件提取代码

时间:2016-10-06 01:19:46

标签: sql-server

假设我们有两个表A和B.两个表都有From个日期.i.e。 A.FromDateB.FromDate两者都可以加入MemberID。我需要在From Date

上列出具有以下条件的表格中的成员列表 应该计算

FromDate

  • 如果A.FromDate小于B.FromDate,请使用B.FromDate
  • 如果A.FromDate等于或大于当前组范围B.FromDate,请使用资格范围A.FromDate
  • 如果无法确定日期,则应将成员列入例外列表。

请帮忙

1 个答案:

答案 0 :(得分:1)

尝试此查询:

SELECT A.*, B.*,
       CASE WHEN A.FromDate  < B.FromDate THEN CAST(B.FromDate AS VARCHAR(15))
            WHEN A.FromDate >= B.FromDate THEN CAST(A.FromDate AS VARCHAR(15))
            ELSE 'Exception' END AS FromDate
FROM A
INNER JOIN B
    ON A.MemberID = B.MemberID

ELSE条件只会在无法确定日期之间的不等式时触发,当一个或两个日期为NULL时会发生这种情况。