我有一個表結構如下:
Table: Details
ID | ParentName | ChildName
1 | ParentA | ChildA
2 | ParentA | ChildC
3 | ParentA | ChildB
4 | ParentB | ChildL
5 | ParentB | ChildS
6 | ParentB | ChildT
7 | ParentB | ChildM
8 | ParentB | ChildP
9 | ParentB | ChildR
10 | ParentC | ChildZ
只有當 ParentName 是 ParentB 時,我才需要對 ChildName 進行升序排序,對于其他 ParentName - 不應該應用排序所以基本上我只需要對資料的子集進行排序,即。當 ParentName = ParentB 時,其他資料應保持原樣。
我嘗試了以下查詢,但它正在對所有記錄進行排序 - 但我只需要為 ParentB 排序
SELECT * FROM DETAILS WITH (NOLOCK) ORDER BY ParentName , ChildName
預期結果是:僅對 ParentName = ParentB 進行排序,其他資料相同。
ID | ParentName | ChildName
1 | ParentA | ChildA
2 | ParentA | ChildC
3 | ParentA | ChildB
4 | ParentB | ChildL
7 | ParentB | ChildM
8 | ParentB | ChildP
9 | ParentB | ChildR
5 | ParentB | ChildS
6 | ParentB | ChildT
10 | ParentC | ChildZ
任何幫助或建議將不勝感激。
提前致謝
uj5u.com熱心網友回復:
您可以在子句中使用CASE運算式ORDER BY
order by ParentName,
case when ParentName = 'ParentB' then ChildName end,
ID
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/452421.html
上一篇:SQL幫助,按投標拆分稅款
下一篇:更改char資料型別的日期格式
