簡體   English   中英

基於優先級 -Sql 選擇行

[英]Selecting rows based on Priority -Sql

我有一個案例,我想選擇基於行的狀態克隆優先級

第一優先級應該是 Customer_Status 狀態為“已刪除”

第二個優先級應該是 Family_Status,值為 'Deleted' [選擇前 1 個 Family_Status ='Deleted']

如果所有 Family_Status 都為“open”,則選擇前 1 個 Family_Status ='Open'

情況1

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

在這種情況下,我需要結果為

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

任何人都可以幫助解決此查詢

只需對結果集進行排序:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM