2015-11-06 101 views
-1

我有一個情況下,有我要選擇基於行的狀態cloumn先決選擇行 - SQL

首先先決應Customer_Status與「已刪除」狀態

其次應該優先Family_Status與價值「刪除」 [與Family_Status選擇頂層1 = '刪除']

如果所有Family_Status是「開放的」,然後選擇頂部1 Family_Status = '打開'

案例:1

​​

在這種情況下,我需要導致作爲

 
CustomerID FamilyId Name   Customer_Status  Family_Status 
-------  -------- --------- ---------------  ----------- 
1000   101   Vk   Open    Open 

情況2

 
CustomerID FamilyId Name   Customer_Status  Family_Status 
-------     --------- ---------------  ------------ 
1000   101   Vk   Open    Open 
1000   102   vk   Deleted   Open 
1000   103   vk   Open    Open 

在這種情況下,我需要導致作爲

 
CustomerID FamilyId Name   Customer_Status  Family_Status 
-------     --------- ---------------  ------------ 
1000   102   vk   Deleted   Open 

案例:3

 
CustomerID FamilyId Name   Customer_Status  Family_Status 
-------     --------- ---------------  ------------ 
1000   101   Vk   Deleted   Open 
1000   102   vk   Deleted   Open 
1000   103   vk   Deleted   Open 

輸出:

 
CustomerID FamilyId Name   Customer_Status  Family_Status 
-------     --------- ---------------  ------------ 
1000   101   Vk   Deleted   Open 

案例:4

 
CustomerID FamilyId Name   Customer_Status  Family_Status 
-------     --------- ---------------  ------------ 
1000   101   Vk   Open    Deleted 
1000   102   vk   Open    Deleted 
1000   103   vk   Open    Deleted 

在這種情況下,我需要得到作爲

 
CustomerID FamilyId Name   Customer_Status  Family_Status 
-------     --------- ---------------  --------- 
1000   101   Vk   Open    Deleted 

任何人都可以在此查詢

回答

1

公正的秩序的幫助結果集:

SELECT TOP (1) * 
FROM MyTable 
ORDER BY Customer_Status, Family_Status DESC 
+0

在此它如何處理與優先地位「已刪除」 – vmb

+0

我會嘗試這個 – vmb

+0

訂貨時'D'到來之前'O'所以'Deleted'將前'Open'訂購。 –