如何在SQLserver的Where子句中使用case语句

时间:2014-02-27 21:05:35

标签: sql sql-server

我需要查询根据客户状态检查某些条件

示例数据:

Table  A
    A_ID Customer_ID  Department  Feild  Case1 Case2 
     1       101           X       A      FX1   Zx1
     2       102           Y       B      FX2   ZX2
     3       103           Z       C      FX3   ZX3
  Table  B ---- 
        B_ID      Customer_ID   Status  Feild  Match_Feild   Case1  Case2 
         1            101         C      Null      A          FX1    ZX1
         2            101       Manual    A        AX         FX0    ZX0

在我的情况下,如果状态是手动,那么在我需要与Feild单独检查的where条件中  否则我需要检查其他两个条件

  

,其中      如果Status ='Manual',则a.feild = b.feild        其他        a.Case1 = b.Case1          和        a.Case2 = B.case2     端。

我不知道如何将其放入我的查询中

1 个答案:

答案 0 :(得分:1)

    where (Status = 'Manual' and a.feild = b.feild ) 
          OR 
          (Status<> 'Manual' AND a.Case1 = b.Case1 and a.Case2 = B.case2)