回答

收藏

通过SELECT进行多列动态订购

技术问答 技术问答 428 人阅读 | 0 人回复 | 2023-09-14

当ORDER BY基于CASE语句时,选择多个ORDER BY列的正确MS SQL语法是什么?0 c2 w( H: A8 l' m  Z% g3 ~! @
以下对于单列工作正常,但我需要按多列进行排序:
7 X4 @6 L7 k6 {- y0 K4 ]4 E! fSELECT * FROM Products* j: J/ X/ u! r. F) N: k+ C0 |
ORDER BY ' M1 V9 V$ B3 q7 V$ p! y+ r
CASE WHEN @SortIndex = 1 THEN Price END ASC,
/ k. `. v1 W3 u' |6 q, K( _. b6 pCASE WHEN @SortIndex = 2 THEN Price DESC, Title ASC END 你可以试试这个
1 m3 j; W+ A' M2 P# [SELECT * FROM Products5 Q) k" p- {6 s9 ?! |
ORDER BY 8 u4 @0 L* i6 T- [  e% q
CASE WHEN @SortIndex = 1 THEN Price END ASC,
* y6 T0 X' ~; S/ `' HCASE WHEN @SortIndex = 2 THEN Price END DESC,
, o8 [8 Y2 \1 _7 u: \& M: L7 }CASE WHEN @SortIndex = 2 THEN Title END ASC
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则