目录
题目链接
https://www.nowcoder.com/exam/oj/ta?tpId=298
SQL题解汇总
https://blog.csdn.net/guliguliguliguli/article/details/126109166
06 创建计算字段篇
SQL 79 别名
答案
select vend_id, vend_name vname, vend_address vaddress, vend_city vcity
from Vendors
order by vname asc;
SQL 80 打折
答案
select prod_id, prod_price, prod_price * 0.9 sale_price
from Products;
07 使用函数处理数据
SQL 81 顾客登录名
答案
select cust_id, cust_name, concat(upper(left(cust_name,2)),upper(left(cust_city,3))) user_login
from Customers;
解析
函数的分类方式一:(从功能角度)
- 数值函数
- 字符串函数
- 日期和时间函数
- 流程控制函数
- 加密与解密函数
- 获取MySQL信息函数
- 聚合函数
- …
函数的分类方式二:
- 单行函数
- 多行函数(又叫聚合函数,或分组函数)
其中单行函数:
- 能操作数据对象
- 接收参数返回一个结果
- 只对一行进行变换
- 每行返回一个结果
- 可以嵌套
- 参数可以是一列或一个值
本题中用到的几个与字符串有关的单行函数
单行函数 | 解释 |
---|---|
concat(s1,s2,…,sn) | 连接s1,s2,…,sn为一个字符串 |
left(str,n) | 返回字符串str最左边的n个字符 |
upper(s) | 将字符串s的所有字母转成大写字母 |
SQL 82 返回 2020 年 1 月的所有订单的订单号和订单日期
答案一(可以通过,但是不严谨)
select order_num,order_date
from Orders
where month(order_date) = 1
order by order_date asc;
答案二
select order_num,order_date
from Orders
where month(order_date) = 1 and year(order_date) = 2020
order by order_date asc;