SQL按列位置排序

SQL按列位置排序,除了能用列名指出排序顺序外,ORDER BY还支持按相对列位置进行排序。为理解这一内容,我们来看个例子:

    SELECT prod_id, prod_price, prod_name
    FROM Products
    ORDER BY 2, 3;

输出结果如下:

    prod_id      prod_price      prod_name
    -------      ----------      --------------------
    BNBG02       3.4900           Bird bean bag toy
    BNBG01       3.4900           Fish bean bag toy
    BNBG03       3.4900           Rabbit bean bag toy
    RGAN01       4.9900           Raggedy Ann
    BR01          5.9900           8 inch teddy bear
    BR02          8.9900           12 inch teddy bear
    RYL01        9.4900           King doll
    RYL02        9.4900           Queen doll
    BR03          11.9900          18 inch teddy bear

可以看到,这里的输出与上面的查询相同,不同之处在于ORDER BY子句。SELECT清单中指定的是选择列的相对位置而不是列名。ORDER BY 2表示按SELECT清单中的第二个列prod_price进行排序。ORDER BY 2, 3表示先按prod_price,再按prod_name进行排序。

这一技术的主要好处在于不用重新输入列名。但它也有缺点。首先,不明确给出列名有可能造成错用列名排序。其次,在对SELECT清单进行更改时容易错误地对数据进行排序(忘记对ORDER BY子句做相应的改动)。最后,如果进行排序的列不在SELECT清单中,显然不能使用这项技术。

提示:按非选择列排序
显然,当根据不出现在SELECT清单中的列进行排序时,不能采用这项技术。但是,如果有必要,可以混合使用实际列名和相对列位置。

酷客网相关文章:

赞(0)

评论 抢沙发

评论前必须登录!

 

SQL教程