带Desc / Asc排序的Order By子句的案例声明
技术问答
337 人阅读
|
0 人回复
|
2023-09-14
|
SELECT *: y' T; w" j G4 S' }! S! y
FROM
8 n9 @( d1 l2 @1 V& b TableName
7 x# G7 \$ \/ m, p0 ]+ jWHERE
( m) w( n# D' q. ^. d7 LORDER BY " k% _# e5 B. J$ l0 f' U5 U+ }
CASE @OrderByColumn/ K5 ?0 |. S! O. z9 F
WHEN 1 THEN Forename
P" a0 k2 G' M% u$ {" z" w WHEN 2 THEN Surname F4 N" k3 H8 J% n, k
END;) ?& i* S0 D' \6 h4 E
我有一条类似于上面的语句,它使我可以动态选择如何对查询结果进行排序。但是,如何指定要订购DESC的姓氏和姓氏ASC?2 E0 g5 Z+ G1 M4 d6 T# f
( Y/ c$ N5 f5 T. A% ~7 B
解决方案:
$ n9 j$ w7 B% f 3 B S. m2 `2 J9 h3 [" R
- X! u' R+ J0 W+ B! t7 t: e
9 @+ k# E# q0 }) G+ d+ h; [& S7 p
您需要将您的内容ORDER BY分为两部分:
& J8 {4 M4 [/ Q# u/ x4 C% _, T- pSELECT *' o5 H0 T. ^+ U' ]* H: J* b
FROM* b, y2 o* e/ U! S
TableName
* y3 J, ]8 P K$ XWHERE
* n$ t( X' b: k; {. \, G- ^9 oORDER BY $ G0 u0 l& B6 u6 J
(CASE @OrderByColumn4 a7 _- Y$ x4 m/ f; S) n/ W
WHEN 1 THEN Forename% o& e, d. B0 O$ R# A- f
END) DESC -- Forename --> descending
8 |4 U" H8 p1 h6 q; p2 v2 Z0 u) D, (CASE @OrderByColumn! V" t" B0 G/ k/ t; P! \
WHEN 2 THEN Surname
& Q) _/ [1 j7 e5 _# [* |* A/ C END) ASC -- Surname --> ascending |
|
|
|
|
|