在MS SQL Server 2008 R2中編寫存儲過程,我想避免使用DSQL ...條件SQL ORDER BY ASC/DESC爲阿爾法列
我想排序法(ASC或DESC)是有條件的。
如今,隨着數字列我會簡單地用一個case語句和否定價值效仿ASC或DESC ... 即:
... ORDER BY CASE @OrderAscOrDesc WHEN 0 THEN [NumericColumn] ELSE -[NumericColumn] END ASC
什麼是有這樣一個合適的方法alpha列?
編輯:我想到一個聰明的方式,但它似乎非常低效......我可以插入我的有序alpha列到自動編號的臨時表中,然後使用上述方法按自動編號排序。
EDIT2:
你們認爲這種做法是什麼?
ORDER BY CASE @OrderAscOrDesc WHEN 0 THEN [AlphaColumn] ELSE '' END ASC,
CASE @OrderAscOrDesc WHEN 0 THEN '' ELSE [AlphaColumn] END DESC
我不知道,如果強制排序上均勻柱比從排序字符串獲得數字雖然
聰明,非常類似於我的解決方案我張貼的編輯。我希望得到比導出數據的另一個排序副本更有效率的東西,以產生一個數字排序順序.... – Matthew 2010-10-07 19:00:40
@Matthew PK:你必須用字符串代替匹配的數字,或者爲非相關案件。沒有*真的*聰明我很害怕 – gbn 2010-10-07 19:04:21
您如何看待我的第二次編輯中的「兩個ORDER BY子句」方法? – Matthew 2010-10-07 19:32:34