直播中
如果你正在使用ASPrecordset在網(wǎng)頁(yè)上寫出記錄,那么你或許知道亂紛紛的順序是多令人痛苦的事。但是你可能不得不經(jīng)常得面對(duì)這一問題,因?yàn)椴⒉淮嬖谑裁春?jiǎn)單方便的解決方案。好在ORDER BY 可以簡(jiǎn)化這一難題。
為了對(duì)你的結(jié)果排序,只要在SELECT語(yǔ)句末尾加上ORDER BY,然后指定你需要排序的參照列即可。因此,如果你想要根據(jù)顧客的姓氏對(duì)Customers表排序,那么你可以編寫如下的查詢語(yǔ)句:
SQL = "SELECT c_lastname, c_firstname, c_email FROM Customers ORDER BY c_lastname"
這樣,只要你建立了recordset而且開始把結(jié)果寫到屏幕上,你就會(huì)看見數(shù)據(jù)按照字母順序排列起來了。
多級(jí)排序
其實(shí)不僅僅可以在SQL語(yǔ)句中進(jìn)行一級(jí)排序。實(shí)際上,在很多情況下,你可能會(huì)希望指定兩到三級(jí)深度的數(shù)據(jù)排序。假設(shè)你有以下數(shù)據(jù)表,其內(nèi)容如下所示: [image003.gif]
先前采用的單級(jí)ORDER BY 排序是按下面的順序取出數(shù)據(jù)的:
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 起了應(yīng)有的作用。在實(shí)際的表結(jié)構(gòu)下,Absurdly Assured 是最后的條目,但它排在檢索結(jié)果的最頂端。Hands On記錄排最后因?yàn)?O 在以上列表中排在字母表最后。顯然,Absolutely按照字母表最好排在Absurdly之前。為此,你需要采取第2級(jí)ORDER BY 排序標(biāo)準(zhǔn),參照第2列進(jìn)行排序:
SQL = "SELECT c_lastname, c_firstname, c_email FROM Customers ORDER BY
c_lastname, c_firstname"
其結(jié)果將首先按照c_lastname 列排序然后按照c_firstname 列排序。假如你的數(shù)據(jù)表包含的記錄比較多,仔細(xì)設(shè)計(jì)排序會(huì)令輸出結(jié)果編排更為合理。
投入使用
如果你同大多數(shù)程序員一樣喜歡自己動(dòng)手編代碼,沉湎于掌握新技術(shù)的狂熱之中。何不從ASP的冗長(zhǎng)編碼中轉(zhuǎn)過頭來嘗試一下SQL編碼呢?下面我們將就ASP編程時(shí)常見的問題以及如何在ASP中高效地利用SQL語(yǔ)句做一番探討。