Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 如何在SQL Server中基于一个或另一个条件提取代码_Sql Server - Fatal编程技术网

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

Sql server 如何在SQL Server中基于一个或另一个条件提取代码,sql-server,Sql Server,假设我们有两个表A和B。两个表都有开始日期A.FromDate和B.FromDate,两者都可以在MemberID上加入。我需要在from Date FromDate应计算为: 如果A.FromDate小于B.FromDate,则使用B.FromDate 如果A.FromDate等于或大于当前组spanB.FromDate,则使用资格spanA.FromDate 如果无法确定日期,则应将成员包括在例外列表中 请帮助尝试此查询: SELECT A.*, B.*, CASE WHE

假设我们有两个表A和B。两个表都有
开始日期
A.FromDate
B.FromDate
,两者都可以在
MemberID
上加入。我需要在
from Date

FromDate
应计算为:

  • 如果
    A.FromDate
    小于
    B.FromDate
    ,则使用
    B.FromDate
  • 如果
    A.FromDate
    等于或大于当前组span
    B.FromDate
    ,则使用资格span
    A.FromDate
  • 如果无法确定日期,则应将成员包括在例外列表中
请帮助

尝试此查询:

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
选择A.*,B.*,
当A.FromDate=B.FromDate时,则强制转换(A.FromDate为VARCHAR(15))
否则“例外”将从开始日期结束
从
内连接B
在A.MemberID=B.MemberID上
ELSE
条件只有在无法确定日期之间的不相等时才会触发,当一个或两个起始日期都为
NULL
时就会发生这种情况