。 操作字段
通常,當你從一個表中取出字段值時,該值與創建該表時所定義的字段名聯系在一起。如果你從表authors中選擇所有的作者名字,所有的值將會與字段名au_lname相聯系。但是在某些情況下,你需要對字段名進行操作。在SELECT語句中,你可以在缺省字段名後面僅跟一個新名字來取代它。例如,可以用一個更直觀易讀的名字Author Last Name來代替字段名au_lname:
SELECT au_lname "Author Last Name" FROM authors
當這個SELECT語句執行時,來自字段au_lname的值會與“Author Last Name”相聯系。查詢結果可能是這樣:
Author Last Name
……………………………………………………………………..
White
Green
Carson
O’Leary
Straight
…
(23 row(s) affected)
注意字段標題不再是au_lname,而是被Author Last Name所取代。
你也可以通過執行運算,來操作從一個表返回的字段值。例如,如果你想把表titles中的所有書的價格加倍,你可以使用下面的
SELECT語句:
SELECT price*2 FROM titles
當這個查詢執行時,每本書的價格從表中取出時都會加倍。但是,通過這種途徑操作字段不會改變存儲在表中的書價。對字段的運
算只會影響SELECT語句的輸出,而不會影響表中的數據。為了同時顯示書的原始價格和漲價後的新價格,你可以使用下面的查詢:
SELECT price "Original price", price*2 "New price" FROM titles
當數據從表titles中取出時,原始價格顯示在標題Original price下面,加倍後的價格顯示在標題New price下面。結果可能是這
樣:
original price new price
……………………………………………………………….
39.98
11.95 23.90
5.98
39.98
…
(18 row(s) affected)
你可以使用大多數標准的數學運算符來操作字段值,如加(+),減(-),乘(*)和除(/)。你也可以一次對多個字段進行運
算,例如:
SELECT price*ytd_sales "total revenue" FROM titles
在這個例子中,通過把價格與銷售量相乘,計算出了每種書的總銷售額。這個SELECT語句的結果將是這樣的:
total revenue
……………………………………………..
81,859,05
46,318,20
55,978,78
81,859,05
40,619,68
…
(18 row(s) affected)
最後,你還可以使用連接運算符(它看起來像個加號)來連接兩個字符型字段:
SELECT au_fname+" "+au_lname "author name" FROM authors
在這個例子中,你把字段au_fname和字段au_lname粘貼在一起,中間用一個逗號 隔開,並把查詢結果的標題指定為author
name。這個語句的執行結果將是這樣的:
author names
…………………………………………………………
Johnson White
MarjorIE Green
Cheryl Carson
Michael O’Leary
Dean Straight
…
(23 row(s) affected)
可以看到,SQL為你提供了對查詢結果的許多控制。你應該在ASP編程過程中充分利用這些優點。使用SQL來操作查詢結果幾乎總是
比使用有同樣作用的腳本效率更高。
排序查詢結果
本章的介紹中曾強調過,SQL表沒有內在的順序。例如,從一個表中取第二個記錄是沒有意義的。從SQL的角度看來,沒有一個記錄
在任何其他記錄之前。
然而,你可以操縱一個SQL查詢結果的順序。在缺省情況下,當記錄從表中取出時,記錄不以特定的順序出現。例如,當從表
authors中取出字段au_lname時,查詢結果顯示成這樣:
au_lname
…………………………………….
White
Green
Carson
O’Leary
Straight
…