2014-02-27 33 views
0

條款,我需要我的查詢基於客戶的狀態,以檢查某些條件如何使用case語句在SQLServer中

樣本數據:

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單獨
其他我需要檢查與其他兩個條件

其中 情況下,當狀態= '手動',然後a.feild = b.feild 否則 a.Case1 = b.Case1 和 a.Case2 = B.case2 端。

我不知道如何把這個在我的查詢

+0

你說的NULL是什麼意思?你想要剩下的記錄嗎 –

+0

'Feild'應該是'Field'嗎? – Dan

+0

狀態,情況1和情況2,哪些列可以爲空? –

回答

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

或1 = 1將始終將條件視爲成功。 – Zane