加入收藏 | 设为首页 | 会员中心 | 我要投稿 PHP编程网 - 钦州站长网 (https://www.0777zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

Lesson2 排序检索数据(ODER BY、DESC)

发布时间:2022-11-26 02:35:15 所属栏目:MsSql教程 来源:网络
导读: 3.1 排序数据ODER BY子句(正序,A-Z,小到大)
输入:
SELECT prod_name
FROM Products
ORDER BY prod_name; --按名字排序
输出:
prod_name
????-------------

3.1 排序数据ODER BY子句(正序,A-Z,小到大)

输入:

SELECT prod_name
FROM Products
ORDER BY prod_name                         --按名字排序

输出:

prod_name
????--------------------
12 inch teddy bear
18 inch teddy bear
????8 inch teddy bear
????Bird bean bag toy
Fish bean bag toy
King doll
????Queen doll
????Rabbit bean bag toy
????Raggedy Ann??

*ODER BY子句的位置必须在最后一行

3.2 按多个列排序

输入:

SELECT prod_id, prod_price, prod_name
FROM Products
????ORDER BY prod_price, prod_name;                  ??--按价格、名字排序

输出:

prod_id      prod_price      prod_name
-------      ----------      --------------------
BNBG02       3.4900           Bird bean bag toy
BNBG01       3.4900           Fish bean bag toy
BNBG03       3.4900           Rabbit bean bag toy
????RGAN01       4.9900           Raggedy Ann
BR01          5.9900           8 inch teddy bear
????BR02          8.9900           12 inch teddy bear
????RYL01        9.4900           King doll
RYL02        9.4900           Queen doll
????BR03          11.9900          18 inch teddy bear??

优先按prod_price和prod_name来排序。

*仅在多个行具有相同的prod_price值时才对产品按prod_name进行排序。如果prod_price列中所有的值都是唯一的,则不会按prod_name排序。(上图前三个都是34900,然后再按name的首写字幕进行排序。如果只有1各34900,就不会排序,因为没有东西可排……)

3.3 按列位置排序

输入:

SELECT prod_id, prod_price, prod_name
FROM Products
????ORDER BY 2,3;??                           --按第2、3列排序

输出:

和3.2中的相同

3.4 置顶排序方向DESC(倒序Z-A,大到小)

DESC是DESCENDING的缩写,相对的是ASC(ASCEENDING),但因为ODER BY默认就是ASC,所以写ASC没有必要

输入:

SELECT prod_id, prod_price, prod_name
FROM Products
????ORDER BY prod_price DESC;??                       --按价格降序排列,DESC写在列名后

输出:

prod_id      prod_price      prod_name
????-------      ----------      --------------------
????BR03          11.9900          18 inch teddy bear
RYL01        9.4900           King doll
RYL02        9.4900           Queen doll
????BR02          8.9900           12 inch teddy bear
????BR01          5.9900           8 inch teddy bear
RGAN01       4.9900           Raggedy Ann
????BNBG01       3.4900           Fish bean bag toy
????BNBG02       3.4900           Bird bean bag toy
????BNBG03       3.4900           Rabbit bean bag toy

注意:DESC关键词只应用到直接位于其前面的列名

输入:

ELECT prod_id, prod_price, prod_name
????FROM Products
????ORDER BY prod_price DESC, prod_name;??   --只给价格降序排序,名字正序排序

输出:

rod_id      prod_price      prod_name
????-------      ----------      --------------------
????BR03          11.9900          18 inch teddy bear
????RYL01        9.4900           King doll
RYL02        9.4900           Queen doll
????BR02          8.9900           12 inch teddy bear
????BR01          5.9900           8 inch teddy bear
????RGAN01       4.9900           Raggedy Ann
????BNBG02       3.4900           Bird bean bag toy
????BNBG01       3.4900           Fish bean bag toy
????BNBG03       3.4900           Rabbit bean bag toy??

注意:如果想在多个列上进行降序排序,必须对每一列指定DESC关键字。

3.6 练习题编写SQL语句,从Customers中检索所有的顾客名称(cust_names),并按从Z到A的顺序显示结果。编写SQL语句,从Orders表中检索顾客ID(cust_id)和订单号(order_num),并先按顾客ID对结果进行排序,再按订单日期倒序排列。显然,我们的虚拟商店更喜欢出售比较贵的物品,而且这类物品有很多。编写SQL语句mssql 按关键字排序,显示OrderItems表中的数量和价格(item_price),并按数量由多到少、价格由高到低排序。下面的SQL语句有问题吗?(尝试在不运行的情况下指出。)

SELECT vend_name,
??????FROM Vendors
??????ORDER vend_name DESC;??

答案:

第一题:

SELECT cust_name
FROM Customers
ORDER BY cust_name DESC;

第二题:

SELECT cust_id,order_num
FROM Orders
ORDER BY cust_id,order_date DESC;

第三题:

SELECT quantity,item_price
FROM OrderItems
ORDER BY quantity DESC,item_price DESC;

第四题:

“SELECT vend_name,”不该有逗号ORDER后少了一个BY

(编辑:PHP编程网 - 钦州站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!