SQL篇-03_SQL必知必会-04_高级数据过滤

SQL71 检索供应商名称

描述
Vendors表有字段供应商名称(vend_name)、供应商国家(vend_country)、供应商州(vend_state)
vend_name	vend_country	vend_state
apple	USA	CA
vivo	CNA	shenzhen
huawei	CNA	xian

【问题】编写 SQL 语句,从 Vendors 表中检索供应商名称(vend_name),仅返回加利福尼亚州的供应商(这需要按国家[USA]和州[CA]进行过滤,没准其他国家也存在一个CA)
【示例答案】返回供应商名称vend_name
vend_name
apple
示例1
输入:
DROP TABLE IF EXISTS `Vendors`;
CREATE TABLE IF NOT EXISTS `Vendors` (
  `vend_name` VARCHAR(255) NOT NULL COMMENT 'vend名称',
  `vend_country` VARCHAR(255) NOT NULL COMMENT 'vend国家',
  `vend_state` VARCHAR(255) NOT NULL COMMENT 'vend州'
);
INSERT INTO `Vendors` VALUES ('apple','USA','CA'),
('vivo','CNA','shenzhen'),
('huawei','CNA','xian');
复制
输出:
apple

答案:

SELECT vend_name
FROM Vendors
WHERE vend_state = 'CA' AND vend_country = 'USA'

SQL72 检索并列出已订购产品的清单

描述
OrderItems 表包含了所有已订购的产品(有些已被订购多次)。
prod_id
order_num	quantity
BR01	a1	105
BR02 	a2	1100
BR02	a2	200
BR03	a4	1121
BR017	a5	10
BR02	a2	19
BR017	a7	5【
问题】编写SQL 语句,查找所有订购了数量至少100 个的 BR01、BR02 或BR03 的订单。你需要返回 OrderItems 表的订单号(order_num)、产品 ID(prod_id)和数量(quantity),并按产品 ID 和数量进行过滤。
【示例答案】返回商品id prod_id、订单order_num、数量quantity。
order_num	prod_id	quantity
a1			BR01	105
a2			BR02	1100
a2			BR02	200
a4			BR03	1121
【示例解析】
返回的结果中,数量满足大于等于100,且满足prod_id 是"BR01",“BR02”,“BR03"中的任意一个。
示例1
输入:
DROP TABLE IF EXISTS `OrderItems`;
CREATE TABLE IF NOT EXISTS `OrderItems`(

	prod_id VARCHAR(255) NOT NULL COMMENT '商品号',
	order_num VARCHAR(255) NOT NULL COMMENT '商品订单号',
	quantity INT(255) NOT NULL COMMENT '商品数量'
);
INSERT `OrderItems` VALUES ('BR01','a1','105'),('BR02','a2','1100'),('BR02','a2','200'),('BR03','a4','1121'),('BR017','a5','10'),('BR02','a2','19'),('BR017','a7','5')
复制
输出:
a1|BR01|105
a2|BR02|1100
a2|BR02|200
a4|BR03|1121

答案:

SELECT order_num, prod_id, quantity
FROM OrderItems
WHERE quantity >= 100 AND prod_id IN ('BR01','BR02','BR03')

SQL73 返回所有价格在 3美元到 6美元之间的产品的名称和价格

描述
有表Products
prod_id	prod_name	prod_price
a0011	egg			3
a0019	sockets		4
b0019	coffee		15
【问题】编写 SQL 语句,返回所有价格在 3美元到 6美元之间的产品的名称(prod_name)和价格(prod_price),使用 AND操作符,然后按价格对结果进行升序排序
【示例结果】
返回商品名称prod_name和商品价格prod_price
prod_name	prod_price
egg			3
sockets		4

注:不需要考虑价格相同时的排序问题
示例1
输入:
DROP TABLE IF EXISTS `Products`;
CREATE TABLE IF NOT EXISTS `Products` (
`prod_id` VARCHAR(255) NOT NULL COMMENT '产品 ID',
`prod_name` VARCHAR(255) NOT NULL COMMENT '产品名称',
`prod_price` INT(255) NOT NULL COMMENT '产品价格'
);
INSERT INTO `Products` VALUES ('a0011','egg',3),
('a0019','sockets',4),
('b0019','coffee',15);
复制
输出:
egg|3
sockets|4

答案:

SELECT prod_name, prod_price
FROM Products
WHERE prod_price >=3 AND prod_price <= 6
ORDER BY prod_price

SQL74 纠错2

描述
供应商表Vendors有字段供应商名称vend_name、供应商国家vend_country、供应商省份vend_state
vend_name	vend_country	vend_state
apple		USA				CA
vivo		CNA				shenzhen
huawei		CNA				xian
【问题】修改正确下面sql,使之正确返回
SELECT vend_name 
FROM Vendors 
ORDER BY vend_name 
WHERE vend_country = 'USA' AND vend_state = 'CA';
【示例结果】
结果返回vend_name
vend_name
apple
示例1
输入:
DROP TABLE IF EXISTS `Vendors`;
CREATE TABLE IF NOT EXISTS `Vendors` (
  `vend_name` VARCHAR(255) NOT NULL COMMENT 'vend名称',
  `vend_country` VARCHAR(255) NOT NULL COMMENT 'vend国家',
  `vend_state` VARCHAR(255) NOT NULL COMMENT 'vend州'
);
INSERT INTO `Vendors` VALUES ('apple','USA','CA'),
('beef noodle king','USA','CA'),
('vivo','CNA','shenzhen'),
('huawei','CNA','xian');
复制
输出:
apple
beef noodle king

答案:

SELECT vend_name 
FROM Vendors
WHERE vend_country = 'USA' AND vend_state = 'CA'
ORDER BY vend_name 

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