我想知道如何在sql上输出这些值

时间:2012-07-24 01:55:25

标签: sql

商业, 豪华, 小型货车或SUV, 行政车, 装甲轿车, 装甲小货车, 小轿车

它们位于同一个表中,列名称为Vehicletype。 我的问题是,如果使用ORDER BY ASC,则不会达到上述安排。

3 个答案:

答案 0 :(得分:2)

ASC按字母顺序递增。如果您需要将该订单更改为其他内容,请添加数字类型的另一列(例如,SORTORDER)和该列的ORDER BY,即使您没有显示该列。

VehicleType         SortOrder
-----------         ---------
Business               1
Luxury                 2
Minivan or SUV         3
Executive van          4
Armored Sedan          5
Armored Minivan        6
Minibus                7

SELECT VehicleType FROM whatever ORDER BY sortorder ASC

答案 1 :(得分:1)

通常使用条件语句为该位置引入数字。作为SELECT的一部分,您可以使用:

 CASE WHEN Vehicletype='Business' THEN 1
      WHEN Vehicletype='...' THEN 2
      WHEN ...
      ELSE NULL
 END AS position

或在这种情况下更简单:

 CASE VehicleType
 WHEN 'Business' THEN 1
 WHEN '...' THEN 2
 END AS position

然后,使用ORDER BY position

答案 2 :(得分:0)

ASC将按字母顺序输出列。而DESC将输出相反的结果。