在列出现的位置上,我们可以使用算术运算符操纵列,对查询的结果进行计算。这些算术运算符包括:+(加)、-(减)、*(乘)、/(除)和%(取模)。
格式:
{CONSTANT | COLUMN_NAME | FUNCTION |(SUBQUERY)}
[{ARITHMETIC_OPERAOR | BITWISE_OPERATOR | STRING_OPERATOR} ……]
例如查询所有书在价格提高10%后的价格和书名信息。
SELECT (PRICE*1.1), TITLE FROM TITLES
6. 基于比较的选择行
格式:
SELECT SELECT_LIST
FROM TALBE_LIST
WHERE EXPRESSION COMPARISION_OPERATOR EXPRESSION
例如查询在加州的作者姓名和城市
SELECT AU_LNAME, CITY
FROM AUTHORS
WHERE STATE='CA'
7. 基于范围的选择行
格式:
SELECT SELECT_LIST
FROM TABLE_LIST
WHERE EXPRESSION [NOT] BETWEEN EXPRESSION AND EXPRESSION
例如查询出版日期在9/30/2002到10/3/2002之间的书名(限制为38字符)和出版日
SELECT convert (char (38), TITLE), PUBDATE
FROM TITLES
WHERE PUBDATE BETWEEN 'T' AND '10/3/2002'
8. 基于列表的选择行
格式:
SELECT SELECT_LIST
FROM TABLE_LIST
WHERE [NOT] EXPRESSION [NOT] IN( VALUE_LIST)
例查询书的类型是MOD_COOK或TRAD_COOK的书名和它的类型
SELECT TITLE, TYPE
FROM TITLES
WHERE TYPE IN ('MOD_COOK', 'TRAD_COOK')
9. 基于字符选择行
查找中,有时需要对字符串进行比较。使用LIKE运算符可以完成对字符串的模糊匹配。
格式:
SELECT SELECT_LIST
FROM TABLE_LIST
WHERE EXPRESSION [NOT] LIKE 'STRING'
例如查询店名中包含BOOK的店铺信息
SELECT STOR_NAME
FROM STORES
WHERE STOR_NAME LIKE '%BOOK%'
10. 基于多个搜索条件选择行
在WHERE子句中,也可以使用“逻辑运算符”连接多个条件,构成一个更复杂的条件进行查询。可以使用以下3种逻辑运算符:AND(逻辑与)、OR(逻辑或)、NOT(逻辑非)。
具体格式如下:
SELECT SELECT_LIST
FROM TABLE_LIST
WHERE [NOT] EXPRESSION {AND/OR} [NOT] EXPRESSION
例如查询书名以T开头或者出版号为0877,而且价格大于16美元的书信息
SELECT convert (char (20), TITLE), PUB_ID, PRICE, PUBDATE
FROM TITLES
WHERE (TITLE LIKE 'T%' OR PUB_ID='0877') AND (PRICE >$16.00)
11. 消除重复行
可以用DISTINCT消除重复行。格式为:
SELECT [ALL | DISTINCT] SELECT_LIST
FROM TABLE_NAME
WHERE SEARCH_CONDITIONS
例如查询所有作者的所在城市和州名,要求没有重复信息
SELECT DISTINCT CITY, STATE
FROM AUTHORS
12. 结果排序
通常对查询出来的数据,希望按照某种顺序显示,以便查找。通过ORDER BY子句,我们可以改变查询结果的显示顺序。ORDER BY子句的格式是:
SELECT COLUMN_NAME
FROM TABLE_NAME
[ORDER BY COLUMN_NAME | SELECT_LIST_NUMBER | EXPRESSION [ASC | DESC]
例如按照类型的升序和价格的降序来显示书的信息
SELECT PUB_ID, TYPE, PRICE, convert (char (30), TITLE)
FROM TITLES
ORDER BY TYPE, PRICE DESC
13. 分组查询
分组查询,就是将表中数据按照一定条件分类组合,再根据需要得到统计信息
格式:
SELECT COLUMN_NAME
FROM TABLE_NAME
WHERE SEARCH_CONDITION
[GROUP BY [ALL] AGGREGAT E_FREE_EXPRESSION]
例如计算每本书的书名及它的售书总量,并按照TITLE_ID分组
SELECT TITLE_ID, COPIES_SOLD=SUM (QTY)
FROM SALES
GROUP BY TITLE_ID
14. COMPUTE和COMPUTE BY
我们可以通过COMPUTE和COMPUTE BY计算出汇总数据。
语法:
COMPUTE ROW_AGGREGATE (COLUMN_NAME)
例如查询书类型是以COOK结尾的书的价格和总价
SELECT TYPE, PRICE
小猪蹄蹄和大家一起学习ASP