SQL篇-03_SQL必知必会-02_排序检索数据

SQL63 检索顾客名称并且排序

描述
有表Customers,cust_id代表客户id,cust_name代表客户姓名。
cust_id
cust_name
a1
andy
a2	ben
a3	tony
a4	tom
a5
an
a6
lee
a7	hex
【问题】从 Customers 中检索所有的顾客名称(cust_name),并按从 Z 到 A 的顺序显示结果。
【示例结果】返回客户姓名cust_name
cust_name
tony
tom
lee
hex
ben
andy
an
示例1
输入:
DROP TABLE IF EXISTS `Customers`;
CREATE TABLE IF NOT EXISTS `Customers`(
	cust_id VARCHAR(255) NOT NULL COMMENT '客户id',
	cust_name VARCHAR(255) NOT NULL COMMENT '客户姓名'
);
INSERT `Customers` VALUES ('a1','andy'),('a2','ben'),('a3','tony'),('a4','tom'),('a5','an'),('a6','lee'),('a7','hex');
复制
输出:
cust_name
tony
tom
lee
hex
ben
andy
an

答案:

SELECT cust_name
FROM Customers
ORDER BY cust_name desc

SQL64 对顾客ID和日期排序

描述
有Orders表
cust_id	order_num	order_date
andy	aaaa	2021-01-01 00:00:00
andy	bbbb	2021-01-01 12:00:00
bob	cccc	2021-01-10 12:00:00
dick	dddd	2021-01-11 00:00:00
【问题】编写 SQL 语句,从 Orders 表中检索顾客 ID(cust_id)和订单号(order_num),并先按顾客 ID 对结果进行排序,再按订单日期倒序排列。
【示例答案】
返回2列,cust_id和order_num
cust_id	order_num
andy	bbbb
andy	aaaa
bob	cccc
dick	dddd
【示例解析】
首先根据cust_id进行排列,andy在bob和dick前,再根据order_date进行排列,订单号bbbb的订单时间是 "2021-01-01 12:00:00"大于订单号aaaa的时间"2021-01-01 00:00:00"
示例1
输入:
DROP TABLE IF EXISTS `Orders`;
CREATE TABLE IF NOT EXISTS `Orders` (
  `cust_id` varchar(255) NOT NULL COMMENT '顾客 ID',
  `order_num` varchar(255) NOT NULL COMMENT '订单号',
  `order_date` timestamp NOT NULL COMMENT '订单时间'
);
INSERT INTO `Orders` VALUES ('andy','aaaa','2021-01-01 00:00:00'),
('andy','bbbb','2021-01-01 12:00:00'),
('bob','cccc','2021-01-10 12:00:00'),
('dick','dddd','2021-01-11 00:00:00');
复制
输出:
andy|bbbb
andy|aaaa
bob|cccc
dick|dddd

答案:

SELECT cust_id, order_num
FROM Orders
ORDER BY cust_id, order_date desc

SQL65 按照数量和价格排序

描述
假设有一个OrderItems表
quantity	item_price
1	100
10	1003
2
500
【问题】
编写 SQL 语句,显示 OrderItems 表中的数量(quantity)和价格(item_price),并按数量由多到少、价格由高到低排序。
【示例答案】
返回quantity和item_price
示例1
输入:
DROP TABLE IF EXISTS `OrderItems`;
CREATE TABLE IF NOT EXISTS `OrderItems` (
  `quantity` INT(64) NOT NULL COMMENT '数量',
  `item_price` INT(64) NOT NULL COMMENT '订单价格'
);
INSERT INTO `OrderItems` VALUES (1,100),
(10,1003),
(2,500);
复制
输出:
10|1003
2|500
1|100

答案:

SELECT quantity, item_price
FROM OrderItems
ORDER BY quantity desc, item_price desc

SQL66 检查SQL语句

描述
有Vendors表
vend_name
海底捞
小龙坎
大龙燚

【问题】下面的 SQL 语句有问题吗?尝试将它改正确,使之能够正确运行,并且返回结果根据vend_name逆序排列
SELECT vend_name, 
FROM Vendors 
ORDER vend_name DESC;
【示例展示】
返回vend_name
vend_name
海底捞
小龙坎
大龙燚

示例1
输入:
DROP TABLE IF EXISTS `Vendors`;
CREATE TABLE IF NOT EXISTS `Vendors` (
  `vend_name` VARCHAR(255) NOT NULL COMMENT 'vend名称'
);
INSERT INTO `Vendors` VALUES ('海底捞'),
('小龙坎'),
('大龙燚');
复制
输出:
海底捞
小龙坎
大龙燚

答案:

SELECT vend_name
FROM Vendors 
ORDER BY vend_name DESC;

你可能感兴趣的:(#,在线编程,sql,java,数据库)