《SQL必知必会》第3课 排序检索数据

3.1 排序数据

3.2 按多个列排序

3.3 按列位置排序

3.4 指定排序方向

3.5 code

3.6 挑战题

这一课讲授如何使用 SELECT 语句的

ORDER BY 子句,根据需要排序检索出的数据。

3.1 排序数据

输入SELECT prod_name

           FROM Products

           ORDER BY prod_name;

分析:除了指示 DBMS 软件对prod_name列以字母顺序排序数据的 ORDER BY子句外,这条语句 与前面的语句相同。

输出:

排序结果
概念1
注意

3.2 按多个列排序

经常需要按不止一个列进行数据排序。例如,如果要显示雇员名单,可能希望按姓和名排序(首先按姓排序,然后在每个姓中再按名排序)。如果多个雇员有相同的姓,这样做很有用。

要按多个列排序,只须指定这些列名,列名之间用逗号分开即可(就像选择多个列时那样)。

输入:SELECT prod_id, prod_price, prod_name

           FROM Products

           ORDER BY prod_price, prod_name;

分析:代码检索 3 个列,并按其中两个列对结果进行排序——首先按价格,然后按名称排序

输出:

按多个排序结果

3.3 按列位置排序

输入:SELECT prod_id, prod_price, prod_name

           FROM Products

           ORDER BY 2, 3;

分析:可以看到,这里的输出与上面的查询相同,不同之处在于 ORDER BY 子句。SELECT 清单中指定的是选择列的相对位置而不是列名。ORDER BY 2表示按 SELECT 清单中的第二个列 prod_price 进行排序。ORDER BY 2,3 表示先按 prod_price,再按 prod_name 进行排序。

输出:

结果
提示

3.4 指定排序方向

数据排序不限于升序排序(从 A 到 Z),这只是默认的排序顺序。还可以使用 ORDER BY 子句进行降序(从 Z 到 A)排序。为了进行降序排序,必须指定 DESC 关键字。

输入:SELECT prod_id, prod_price, prod_name

           FROM Products

           ORDER BY prod_price DESC;

分析:以价格降序来排序产品(最贵的排在最前面)

输出:

按prod_price降序输出结果


输入:SELECT prod_id, prod_price, prod_name

           FROM Products

           ORDER BY prod_price DESC,prod_name;

分析:先以降序排列prod_price,再按升序排列prod_name。DESC关键字只应用到直接位于其前面的列名。

输出:

多列排序结果


请注意,DESC 是 DESCENDING的缩写,这两个关键字都可以使用。与 DESC相对的是 ASC(或ASCENDING),在升序排序时可以指定它。但实际上,ASC 没有多大用处,因为升序是默认的(如果既不指定 ASC 也不指定DESC,则假定为 ASC)。

3.5 code

这一课学习了如何用 SELECT 语句的 ORDER BY 子句对检索出的数据进行排序。这个子句必须是 SELECT 语句中的最后一条子句。根据需要,可以利用它在一个或多个列上对数据进行排序

-- --------第3课--------

#3.1 排序数据

SELECT prod_name

FROM Products

ORDER BY prod_name;

#3.2 按多个列排序

SELECT prod_id, prod_price, prod_name

FROM Products

ORDER BY prod_price, prod_name;

#3.3 按列位置排序

SELECT prod_id, prod_price, prod_name

FROM Products

ORDER BY 2, 3;

#3.4 指定排序方向(升or降)

SELECT prod_id, prod_price, prod_name

FROM Products

ORDER BY prod_price DESC;

SELECT prod_id, prod_price, prod_name

FROM Products

ORDER BY prod_price DESC,prod_name;

3.6 挑战题

1. 编写 SQL 语句,从 Customers 中检索所有的顾客名称(cust_name),并按从 Z 到 A 的顺序显示结果。
SELECT cust_name

FROM Customers

ORDER BY cust_name DESC;

2. 编写 SQL 语句,从 Orders 表中检索顾客 ID(cust_id)和订单号(order_num),并先按顾客 ID 对结果进行排序,再按订单日期倒序排列。
SELECT cust_id,order_num

FROM Orders

ORDER BY cust_id,order_date DESC;

3. 显然,我们的虚拟商店更喜欢出售比较贵的物品,而且这类物品有很多。编写 SQL 语句,显示 OrderItems 表中的数量和价格(item_price),并按数量由多到少、价格由高到低排序。
SELECT quantity,item_price

FROM Orderitems

ORDER BY quantity DESC,item_price DESC

4. 下面的 SQL 语句有问题吗?(尝试在不运行的情况下指出。)

SELECT vend_name,

FROM Vendors

ORDER vend_name DESC;

改正:

SELECT vend_name

FROM Vendors

ORDER BY vend_name DESC;

参考:https://forta.com/books/0135182794/challenges/

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,193评论 6 498
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,306评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 162,130评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,110评论 1 292
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,118评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,085评论 1 295
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,007评论 3 417
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,844评论 0 273
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,283评论 1 310
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,508评论 2 332
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,667评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,395评论 5 343
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,985评论 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,630评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,797评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,653评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,553评论 2 352

推荐阅读更多精彩内容