2016-09-21 19 views
0

按列排序时出现问题。首先,我需要让它像在这里选择一样。但在Olie中,我需要将它放置在“x.x”之后,并且在尚未设置为任何内容的位置之前,但需要在“隐藏”列中的文本之后进行排序。按列和标准排列多个订单

我当前的订单在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 
+1

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

+0

然后奥利将被放在数字的方式,它不应该。所以这将无法正常工作:/ – user3314032

+0

你试过了吗? (方式仍然是在ORDER BY之前...) – jarlh

回答

1

包括HiddenColumn作为ORDER BY子句中最后一个项目:

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

首先,你需要在Way的数字,然后'Olie'然后一切。

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