按列和标准进行多排序

Multi order by column, and criteria

我在按列排序时遇到问题。首先,我需要像它在这里选择的那样拥有它。但在 Olie 中,我需要将它放在 "x.x" in way 之后,并且 where way 之前没有设置任何东西,但它需要在 Hidden 列中的文本之后排序。

我目前的订单在 SQL

ORDER BY CASE WHEN [Way] = '' THEN 2 ELSE 1 END, [Way]

//错误的方式(现在是什么)

Hidden Colum                Pt  Way
Tilsætning_20_prioritet_01  0   0.3
Tilsætning_01_prioritet_01  1   1.0
Tilsætning_12_prioritet_01  1   1.0
Tilsætning_21_prioritet_01  2   2.0
Tilsætning_22_prioritet_01  2   2.0
Tilsætning_23_prioritet_01  2   2.0
Tilsætning_24_prioritet_01  2   2.0
Tilsætning_25_prioritet_01  2   2.0
Tilsætning_27_prioritet_01  2   2.0
Tilsætning_26_prioritet_01  3   3.0
Tilsætning_08_prioritet_01  0   Olie
Tilsætning_09_prioritet_01  0   Olie
Tilsætning_03_prioritet_01  0   Olie
Tilsætning_06_prioritet_01  0   Olie
Tilsætning_07_prioritet_01  0   Olie
Genbrug_prioritet_01        
Vand        

正确的方法(我需要的)

Hidden Colum                Pt  Way
Tilsætning_20_prioritet_01  0   0.3
Tilsætning_01_prioritet_01  1   1.0
Tilsætning_12_prioritet_01  1   1.0
Tilsætning_21_prioritet_01  2   2.0
Tilsætning_22_prioritet_01  2   2.0
Tilsætning_23_prioritet_01  2   2.0
Tilsætning_24_prioritet_01  2   2.0
Tilsætning_25_prioritet_01  2   2.0
Tilsætning_27_prioritet_01  2   2.0
Tilsætning_26_prioritet_01  3   3.0
Tilsætning_03_prioritet_01  0   Olie
Tilsætning_06_prioritet_01  0   Olie
Tilsætning_07_prioritet_01  0   Olie
Tilsætning_08_prioritet_01  0   Olie
Tilsætning_09_prioritet_01  0   Olie
Genbrug_prioritet_01        
Vand

任何人有任何线索或我需要存档的方法吗?

编辑 尝试时

ORDER BY CASE WHEN [Way] = '' THEN 2 ELSE 1 END, Hidden Colum 

Tilsætning_01_prioritet_01  1   1.0
Tilsætning_02_prioritet_01  1   1.0
Tilsætning_03_prioritet_01  0   Olie
Tilsætning_04_prioritet_01  0   Olie
Tilsætning_05_prioritet_01  0   Olie
Tilsætning_06_prioritet_01  0   Olie
Tilsætning_07_prioritet_01  0   Olie
Tilsætning_08_prioritet_01  0   Olie
Tilsætning_09_prioritet_01  0   Olie
Tilsætning_10_prioritet_01  0   Olie
Tilsætning_11_prioritet_01  1   1.0
Tilsætning_12_prioritet_01  1   1.0
Tilsætning_13_prioritet_01  0   0.0
Tilsætning_14_prioritet_01  0   0.0
Tilsætning_15_prioritet_01  0   0.1
Tilsætning_16_prioritet_01  0   0.1
Tilsætning_17_prioritet_01  0   0.2
Tilsætning_18_prioritet_01  0   0.2
Tilsætning_19_prioritet_01  0   0.2
Tilsætning_20_prioritet_01  0   0.3
Tilsætning_21_prioritet_01  2   2.0
Tilsætning_22_prioritet_01  2   2.0

将 HiddenColumn 作为最后一项包含在 ORDER BY 子句中:

ORDER BY CASE WHEN [Way] = '' THEN 2 ELSE 1 END, [Way], HiddenColumn

首先您需要 Way 中的数字,然后是 'Olie',然后是其他所有内容。

order by (case when Way not like '%[^0-9.]%' then 1
               when Way = 'Olie' then 2
               else 3
          end),
         pt,
         HiddenColumn