根据图书表中书籍的单价输出价格等级。当单价大于等于30分,输出“较贵”;当单价在20-30之间,输出“适中”;当分数在20以下,输出“便宜”。利用case语句编写程序实现以上功能
时间: 2024-03-09 15:45:02 浏览: 11
假设图书表包含以下列:`book_ID`、`book_name`、`price`。您可以使用以下 SQL 查询来根据单价输出价格等级:
```
SELECT book_ID, book_name,
CASE
WHEN price >= 30 THEN '较贵'
WHEN price >= 20 AND price < 30 THEN '适中'
ELSE '便宜'
END AS price_level
FROM books
```
在上面的查询中,`CASE` 表达式根据单价的值返回不同的文本值,对应不同的价格等级。第一个 `WHEN` 子句测试单价是否大于等于 30,如果是,则返回“较贵”。第二个 `WHEN` 子句测试单价是否在 20 到 30 之间,如果是,则返回“适中”。最后一个子句是 `ELSE`,它在所有其他情况下返回“便宜”。最终结果将包含每个书籍的 ID、名称和价格等级。
相关问题
MySQL检索“book”表中价格在 30 元以上的图书信息,并按价格降序输出。
可以使用如下的SQL语句来实现该功能:
```
SELECT * FROM book
WHERE price >= 30
ORDER BY price DESC
```
解释一下这个SQL语句:
首先使用SELECT语句查询book表中所有字段。然后使用WHERE语句筛选出价格大于等于30元的图书。最后,使用ORDER BY语句按照价格降序对查询结果进行排序。最终,这个SQL语句会返回价格大于等于30元的所有图书信息,并按价格降序排列。
根据图书表中的单价,查询出版单位为清华大学出版社的平均单价,若平均单价大于25,显示较贵,否则显示便宜。利用if语句实现
好的,根据您的要求,我可以给您提供以下 SQL 语句实现:
```
SELECT AVG(price) AS avg_price
FROM book
WHERE publisher = '清华大学出版社';
```
然后,我们可以使用以下代码实现您的要求:
```
# 执行 SQL 查询
cursor.execute("SELECT AVG(price) AS avg_price FROM book WHERE publisher = '清华大学出版社'")
result = cursor.fetchone()
# 获取查询结果
avg_price = result[0]
# 根据平均单价判断
if avg_price > 25:
print("较贵")
else:
print("便宜")
```
请注意,这里的 `cursor` 对象是您所使用的数据库连接的游标对象。另外,您需要根据您的实际情况修改 SQL 查询中的表名以及字段名。