2011-05-12 82 views
1

我想寫一個SQL查詢,做一些複雜的排序。我有一些記錄的表,分別具有三個重要領域:SQL幫助:依賴於值的排序?

  • GROUP_ID
  • Modified_Order
  • Created_Order

現在,我想寫一個查詢,由第一排序這些組ID。然後,如果組ID爲1,則按「修改的順序」對這些結果進行排序。如果組ID是2,按他們的「創建的訂單」進行排序。不會發生不是1或2的組ID。換句話說,我希望結果看起來像下面的圖片。

enter image description here

我怎樣才能寫出了 「ORDER BY」 或 「GROUP BY」 我的查詢的一部分,要做到這一點?

回答

3
Select RecordID, GroupID, Modified_Order, Created_Order 
FROM TableName 
ORDER BY GroupID, Case When GroupID = 1 Then Modified_Order Else Created_Order end 
-1

如何:

select * from table order by group_id,group_id=1 and modified_order,group_id=2 and created_order; 
0
select * from jegad where gr_id in ('1','2') order by gr_id