回答

收藏

通过SELECT进行多列动态订购

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

当ORDER BY基于CASE语句时,选择多个ORDER BY列的正确MS SQL语法是什么?
9 @4 M! @: x  {以下对于单列工作正常,但我需要按多列进行排序:( M  ?4 X- X, f9 N; Q& B
SELECT * FROM Products
$ K# E' N2 o# Y0 c& t" YORDER BY 3 n+ v' r$ b9 u3 ~% w1 E) D
CASE WHEN @SortIndex = 1 THEN Price END ASC,% a' u  b& Z' `
CASE WHEN @SortIndex = 2 THEN Price DESC, Title ASC END 你可以试试这个
+ z1 W- M8 k4 N3 XSELECT * FROM Products
" S+ S& Y; V) C; o% P* x, T3 UORDER BY
) M- q  W9 h+ K1 Q2 w7 e1 |6 ]3 t8 ?CASE WHEN @SortIndex = 1 THEN Price END ASC,
$ ?; G- ~4 h7 vCASE WHEN @SortIndex = 2 THEN Price END DESC,
- F* G2 O/ {+ y1 NCASE WHEN @SortIndex = 2 THEN Title END ASC
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则