回答

收藏

通过SELECT进行多列动态订购

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

当ORDER BY基于CASE语句时,选择多个ORDER BY列的正确MS SQL语法是什么?
1 z( T- ^4 }+ a以下对于单列工作正常,但我需要按多列进行排序:
2 b- Y; F$ f% O( P1 MSELECT * FROM Products
# x" Z: X/ s7 |+ f# [8 k$ YORDER BY
: g5 V8 N5 c# N- y% Y+ yCASE WHEN @SortIndex = 1 THEN Price END ASC,
6 e$ k, k) M8 [& t5 \! Y. N6 FCASE WHEN @SortIndex = 2 THEN Price DESC, Title ASC END 你可以试试这个
+ i3 R& t; o  t6 S' ]9 a$ d4 v% qSELECT * FROM Products
) N9 T  |  v+ d& f3 B' [ORDER BY ' Z* d+ V& H" V$ ^% L
CASE WHEN @SortIndex = 1 THEN Price END ASC,
9 T- L2 [7 y' ~4 ^" o" ?+ bCASE WHEN @SortIndex = 2 THEN Price END DESC, / b/ x4 R. }" A5 W- J) b
CASE WHEN @SortIndex = 2 THEN Title END ASC
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则