1

私は列を持っています:

CAT  | Val
------------
none | 0
high | 5
low  | 100
med  | 50

ご覧のとおり、低い数値はカテゴリが高いです。(逆論理) 0以外..

カテゴリの正しい順序を取得するために、並べ替えたいと思います。(なし、低、中、高)。

私はそれらを順番に欲しい:

CAT  | Val
------------
none | 0
low  | 100
med  | 50
high | 5

これを試してみましたが、結合してから注文します。各選択を括弧で囲むとエラーが発生します。

SELECT cat,  an_int FROM CATS WHERE an_int = 0
UNION
SELECT cat, an_int FROM CATS WHERE an_int <> 0 ORDER BY an_int DESC

これは与える:

CAT  | Val
------------
low  | 100
med  | 50
high | 5
none | 0
4

2 に答える 2

4

これを試して:

select * from CATS 
order by case when cat='none' then 0 else 1 end ,Val desc
于 2012-08-07T10:17:35.887 に答える
1

次のように別の要素を使用して並べ替えます。

SELECT codepro,  nr_cpl, 1 as c FROM reservoirs WHERE nr_cpl = 0 
UNION
SELECT codepro,  nr_cpl, 2 as c FROM reservoirs WHERE nr_cpl <> 0
          order by c asc, nr_cpl desc

それはトリックを行う必要があります。

于 2012-08-07T10:15:04.960 に答える