经常需要按不止一个列进行数据排序。例如,如果要显示雇员清单可能希望按姓和名排序(首先按姓排序,然后在每个姓中再按名排序) 。
如果多个雇员具有相同的姓,这样做很有用。
为了按多个列排序,只要指定列名,列名之间用逗号分开即可(就像选择多个列时所做的那样) 。
下面的代码检索3个列,并按其中两个列对结果进行排序——首先按价格,然后再按名称排序。
输入:
SELECT prod_id,prod_price,prod_name FROM products ORDER BY prod_price,prod_name;
输出:
prod_id | prod_price | prod_name |
---|---|---|
FC TNT1 FU1 SLING ANV01 0L1 ANVO2 FB TNT2 DTNTR ANV03 JP1000 SAFE JP2000 |
2.50 2.50 3.42 4.49 5.99 8.99 9.99 10.00 10.00 13.00 14.99 35.00 50.00 55.00 |
Carrots TNT(1 stick) Fuses S1ing .5ton anvil 0il can 1ton anvil Bird seed TNT(5 sticks) Detonator 2 ton anvil JetPack 1000 Safe JetPack 2000 |
重要的是理解在按多个列排序时,排序完全按所规定的顺序进行。换句话说,对于上述例子中的输出,仅在多个行具有相同的prod_price值时才对产品按prod_name进行排序。如果prod_price列中所有的值都是唯一的,则不会按prod_name排序。