友情提示:如果本网页打开太慢或显示不完整,请尝试鼠标右键“刷新”本网页!
SQL 21日自学通(V3.0)(PDF格式)-第22部分
快捷操作: 按键盘上方向键 ← 或 → 可快速上下翻页 按键盘上的 Enter 键可回到本书目录页 按键盘上方向键 ↑ 可回到本页顶部! 如果本书没有阅读完,想下次继续接着阅读,可使用上方 "收藏到我的浏览器" 功能 和 "加入书签" 功能!
1 Ma Bell 150 Have sons next time
3 Ma Bell 200。32 Cellular Phone
4 Local Utilities 98 Gas
EMAIL wyhsillypig@163。 102
…………………………………………………………Page 103……………………………………………………………
SQL 21 日自学通(V1。0) 翻译人 笨猪
5 Joes Stale Dent 150 Groceries
17 Joans Gas 25。1 Gas
16 Cash 25 Wild Night Out
8 Cash 60 Trip to Boston
21 Cash 34 Trip to Dayton
9 Abes Cleaners 24。35 X…Tra Starch
20 Abes Cleaners 10。5 All Dry Clean
在 ORDER BY 后边的 DESC 表示用降序排列来代替默认的升序排列 下例则出现了
很少使用的关键字 ASC 表示要按升序进行排列
INPUT
SQL》SELECT PAYEE AMOUNT FROM CHECKS ORDER BY CHECK# ASC
OUTPUT
PAYEE AMOUNT
Ma Bell 150
Reading R。R 245。34
Ma Bell 200。32
Local Utilities 98
Joes Stale Dent 150
Cash 60
Abes Cleaners 24。35
Cash 25
Joans Gas 25。1
Abes Cleaners 10。5
Cash 34
输出的结果与最初没有使用 ASC 时是一样的 这是因为 ASC 是默认的选项 本例也
表明了用于排序的字段并不一定要出现在 SELECT 子句中 尽管我们选择的是 PAYEE 和
AMOUNT 但是排序却是按 CHECKS 进行的
ORDER BY 可以使用多个字段 下例是按 PAYEE 和 REMARKS 进行排序的
INPUT
SQL》SELECT * FROM CHECKS ORDER BY PAYEE REMARKS
OUTPUT
CHECK# PAYEE AMOUN REMARKS
T
20 Abes Cleaners 10。5 All Dry Clean
EMAIL wyhsillypig@163。 103
…………………………………………………………Page 104……………………………………………………………
SQL 21 日自学通(V1。0) 翻译人 笨猪
9 Abes Cleaners 24。35 X…Tra Starch
8 Cash 60 Tripto Boston
21 Cash 34 Tripto Dayton
16 Cash 25 Wild Night Out
17 Joans Gas 25。1 Gas
5 Joes Stale Dent 150 Groceries
4 Local Utilities 98 Gas
3 Ma Bell 200。32 Cellular Phone
1 Ma Bell 150 Havesonsnexttime
2 Reading R。R。 245。34 Trainto Chicago
分析
注意在排序之前 CASH 在表中的输入次序 CHECK 号依次为 16 8 21 在 ORDER BY
子句中加入了 REMARK 字段后结果是按照 REMARK 的字母顺序进行排序 在 ORDER BY
中的列的次序对排序的结果会有影响吗 试着掉换一下 PAYEE 和 REMARKS 的次序
INPUT
SQL》SELECT * FROM CHECKS ORDER BY REMARKS PAYEE
OUTPUT
CHECK# PAYEE AMOUNT REMARKS
20 Abes Cleaners 10。5 All Dry Clean
3 Ma Bell 200。32 Cellular Phone
17 Joans Gas 25。1 Gas
4 Local Utilities 98 Gas
5 Joes Stale Dent 150 Groceries
1 Ma Bell 150 Have sons next time
2 Reading R。R 。245。34 Train to Chicago
8 Cash 60 Trip to Boston
21 Cash 34 Trip to Dayton
16 Cash 25 Wild Night Out
9 Abes Cleaners 24。35 X…Tra Starch
分析
你大概已经猜出来了 结果是完全不相同的 下例显示了如何将一列按字母的正顺排
列而把第二列按字母的逆序进行排列
INPUT/OUTPUT
SQL》 SELECT * FROM CHECKS ORDER BY PAYEE ASC REMARKS DESC
EMAIL wyhsillypig@163。 104
…………………………………………………………Page 105……………………………………………………………
SQL 21 日自学通(V1。0) 翻译人 笨猪
CHECK# PAYEE AMOUNT REMARKS
9 Abes Cleaners 24。35 X…Tra Starch
20 Abes Cleaners 10。5 All Dry Clean
16 Cash 25 Wild Night Out
21 Cash 34 Trip to Dayton
8 Cash 60 Trip to Boston
17 Joans Gas 25。1 Gas
5 Joes Stale Dent 150 Groceries
4 Local Utilities 98 Gas
1 Ma Bell 150 Have sons next time
3 Ma Bell 200。32 Cellular Phone
2 Reading R。R 。245。34 Train to Chicago
分析
在这个例子中 PAYEE 按正序排列而 REMARK 按逆序排列 请注意 CASH 中的
REMARK 是怎样相对于 PAYEE 排序的
技巧 假如你已经知道了你想要进行排序的列是表中的第一列的话 那么你可以用 ORDER
BY 1 来代替输入列的名字 见下例
INPUT/OUTPUT
SQL》 SELECT * FROM CHECKS ORDER BY 1
CHECK# PAYEE AMOUNT REMARKS
1 Ma Bell 150 Have sons next time
2 Reading R。R 。245。34 Train to Chicago
3 Ma Bell 200。32 Cellular Phone
4 Local Utilities 98 Gas
5 Joes Stale Dent 150 Groceries
8 Cash 60 Trip to Boston
9 Abes Cleaners 24。35 X…Tra Starch
16 Cash 25 Wild Night Out
17 Joans Gas 25。1 Gas
20 Abes Cleaners 10。5 All Dry Clean
21 Cash 34 Trip to Dayton
分析
它的结果与你在今天的早些时候写下的这个语句的结果是一样的
SELECT * FROM CHECKS ORDER BY CHECK#
EMAIL wyhsillypig@163。 105
…………………………………………………………Page 106……………………………………………………………
SQL 21 日自学通(V1。0) 翻译人 笨猪
GROUP BY 子句
在第三天时我们学习了汇总类函数 COUNT SUM AVG MIN MAX 如果你想
看一下支出的总费用你可以用如下语句
INPUT
SELECT * FROM CHECKS
下表是修改以后的 CHECKS 表
CHECKNUM PAYEE AMOUNT REMARKS
1 Ma Bell 150 Have sons next time
2 Reading R。R 。245。34 Train to Chicago
3 Ma Bell 200。33 Cellular Phone
4 Local Utilities 98 Gas
5 Joes Stale Dent 150 Groceries
16 Cash 25 Wild Night Out
17 Joans Gas 25。1 Gas
9 Abes Cleaners 24。35 X…Tra Starch
20 Abes Cleaners 10。5 All Dry Clean
8 Cash 60 Trip to Boston
21 Cash 34 Trip to Dayton
30 Local Utilities 87。5 Water
31 Local Utilities 34 Sewer
25 Joans Gas 15。75 Gas
你会输入如下语句
INPUT/OUTPUT
SELECT SUM AMOUNT FROM CHECKS
SUM
1159。87
分析
这条语句返回了对 AMOUNT 列的合计结果 可是如果你想知道的是对每一个 PAYEE
花了多少钱时又该怎么办呢 使用 GROUP BY 语句可以帮助你 对本例它的使用方法如
下
INPUT/OUTPUT
SELECT PAYEE SUM AMOUNT FROM CHECKS GROUP BY PAYEE
PAYEE SUM
EMAIL wyhsillypig@163。 106
…………………………………………………………Page 107……………………………………………………………
SQL 21 日自学通(V1。0) 翻译人 笨猪
Abes Cleaners 34。849998
Cash 119
Joans Gas 40。849998
Joes Stale Dent 150
Local Utilities 219。5
Ma Bell 350。33002
Reading R。R 。245。34
SELECT 子句有一个正常的列 之后是一个汇总函数 如果它的后边只有 FROM
CHECKS 子句的话 那么你将会看到
INPUT/OUTPUT
SELECT PAYEE SUM AMOUNT FROM CHECKS
Dynamic SQL Error
…SQL error code = …104
…invalid column reference
分析
该信息表
快捷操作: 按键盘上方向键 ← 或 → 可快速上下翻页 按键盘上的 Enter 键可回到本书目录页 按键盘上方向键 ↑ 可回到本页顶部!
温馨提示: 温看小说的同时发表评论,说出自己的看法和其它小伙伴们分享也不错哦!发表书评还可以获得积分和经验奖励,认真写原创书评 被采纳为精评可以获得大量金币、积分和经验奖励哦!