在ASP中使用SQL语句之7:ORDER BY

  • 作者:未知 来源:未知 添加时间:2003年3月26日 字体:

  • 从Access数据库中选取记录有件最令人丧气的事情,它们是以怎样的顺序输入到数据库内就按照怎样的顺序出来。就算你在Access环境内采用Sort By来改变记录视图,数据表内的记录顺序也并没有发生改变。


    如果你正在使用ASPrecordset在网页上写出记录,那么你或许知道乱纷纷的顺序是多令人痛苦的事。但是你可能不得不经常得面对这一问题,因为并不存在什么简单方便的解决方案。好在ORDER BY 可以简化这一难题。

    为了对你的结果排序,只要在SELECT语句末尾加上ORDER BY,然后指定你需要排序的参照列即可。因此,如果你想要根据顾客的姓氏对Customers表排序,那么你可以编写如下的查询语句:
    SQL = "SELECT c_lastname, c_firstname, c_email FROM Customers ORDER BY c_lastname"

    这样,只要你建立了recordset而且开始把结果写到屏幕上,你就会看见数据按照字母顺序排列起来了。

    多级排序
    其实不仅仅可以在SQL语句中进行一级排序。实际上,在很多情况下,你可能会希望指定两到三级深度的数据排序。假设你有以下数据表,其内容如下所示:

    从Access数据库中选取记录有件最令人丧气的事情,它们是以怎样的顺序输入到数据库内就按照怎样的顺序出来。就算你在Access环境内采用Sort By来改变记录视图,数据表内的记录顺序也并没有发生改变。


    如果你正在使用ASPrecordset在网页上写出记录,那么你或许知道乱纷纷的顺序是多令人痛苦的事。但是你可能不得不经常得面对这一问题,因为并不存在什么简单方便的解决方案。好在ORDER BY 可以简化这一难题。

    为了对你的结果排序,只要在SELECT语句末尾加上ORDER BY,然后指定你需要排序的参照列即可。因此,如果你想要根据顾客的姓氏对Customers表排序,那么你可以编写如下的查询语句:
    SQL = "SELECT c_lastname, c_firstname, c_email FROM Customers ORDER BY c_lastname"

    这样,只要你建立了recordset而且开始把结果写到屏幕上,你就会看见数据按照字母顺序排列起来了。

    多级排序
    其实不仅仅可以在SQL语句中进行一级排序。实际上,在很多情况下,你可能会希望指定两到三级深度的数据排序。假设你有以下数据表,其内容如下所示: [image003.gif]

    先前采用的单级ORDER BY 排序是按下面的顺序取出数据的:
    Absurdly Assured
    absurd@assured.com

    Absolutely Assured
    absolutely@assured.com

    Crazed Coder
    crazy@coder.net

    Loosely Fringe
    loose@fringe.to

    Lunatic Fringe
    lune@fringe.to

    Hands On
    hands@yes.org

    显然ORDER BY 起了应有的作用。在实际的表结构下,Absurdly Assured 是最后的条目,但它排在检索结果的最顶端。Hands On记录排最后因为 O 在以上列表中排在字母表最后。显然,Absolutely按照字母表最好排在Absurdly之前。为此,你需要采取第2级ORDER BY 排序标准,参照第2列进行排序:
    SQL = "SELECT c_lastname, c_firstname, c_email FROM Customers ORDER BY
    c_lastname, c_firstname"

    其结果将首先按照c_lastname 列排序然后按照c_firstname 列排序。假如你的数据表包含的记录比较多,仔细设计排序会令输出结果编排更为合理。

    投入使用
    如果你同大多数程序员一样喜欢自己动手编代码,沉湎于掌握新技术的狂热之中。何不从ASP的冗长编码中转过头来尝试一下SQL编码呢?下面我们将就ASP编程时常见的问题以及如何在ASP中高效地利用SQL语句做一番探讨。

  • 上一篇:在ASP中使用SQL语句之6:存储查询
  • 下一篇:在ASP中使用SQL语句之8:随机数
  • 最后更新时间:2024年12月22日
  • 返回页面顶端
ppdesk