《SQL必知必会第五版》第五章(高级数据过滤)挑战题

1.编写SQL语句,从Vendors表中检索供应商名称(vend_name),仅返回加利福尼亚州的供应商(这需要按国家[USA]和州[CA]进行过滤,没准其他国家也存在一个加利福尼州)。提示:过滤器需要匹配字符串。

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

2. 编写 SQL语句,查找所有至少订购了总量 100个的 BR01、BR02 或 BR03 的订单。你需要返回OrderItems 表的订单号(order_num)、 产品ID(prod_id)和数量,并按产品 ID和数量进行过滤。提示:根据编写过滤器的方式,可能需要特别注意求值顺序。

--解法一
SELECT order_num, prod_id, quantity
FROM OrderItems
WHERE prod_id IN ('BR01','BR02','BR03')
 AND quantity >=100;
--解法二
SELECT order_num, prod_id, quantity
FROM OrderItems
WHERE (prod_id='BR01' OR prod_id='BR02' OR prod_id='BR03')
 AND quantity >=100;

3. 现在,我们回顾上一课的挑战题。编写SQL语句,返回所有价格在3 美元到6美元之间的产品的名称(prod_name)和价格(prod_price)。使用AND,然后按价格对结果进行排序。

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

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

SELECT vend_name

FROM Vendors

ORDER BY vend_name

WHERE vend_country = 'USA' AND vend_state = 'CA';

排序排在最后,WHERE 子句必须在 ORDER BY 子句之前使用。
  • 7
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值