SQL实战笔记,第六篇

!51. 查找字符串’10,A,B’ 中逗号’,'出现的次数cnt。

解题比较有技巧,原来的字符串长度减去把要计数的字符去掉后的字符串的长度就是要计数的字符个数

select (length('10,A,B')-length(replace('10,A,B',',','')))as cnt
--字符串长度length()
--SQL server 里的函数是len()

52. 获取Employees中的first_name,查询按照first_name最后两个字母,按照升序进行排列

CREATE TABLE `employees` (
`emp_no` int(11) NOT NULL,
`birth_date` date NOT NULL,
`first_name` varchar(14) NOT NULL,
`last_name` varchar(16) NOT NULL,
`gender` char(1) NOT NULL,
`hire_date` date NOT NULL,
PRIMARY KEY (`emp_no`));

注意:从字符串中取字符的函数
Oracle,SQLite:substr(string,start,length)
MySQL:substr()或substring()
SQL Server:substring()

--select first_name from employees
--order by right(first_name,2) asc-- MySQL,server可以这里不可以
--考察substr(,,),MySQL有这个函数
--SQL server 叫 substring(,,)函数
select first_name from employees order by substr(first_name,-2)

!SQL server substring 用法:
SQL Server SUBSTRING()函数简介

----截取字符串的后两位,(字符串,开始位置,截取长度)
select substring('harry',len('harry')-1,2)

!53. 按照dept_no进行汇总,属于同一个部门的emp_no按照逗号进行连接,结果给出dept_no以及连接出的结果employees

CREATE TABLE `dept_emp` (
`emp_no` int(11) NOT NULL,
`dept_no` char(4) NOT NULL,
`from_date` date NOT NULL,
`to_date` date NOT NULL,
PRIMARY KEY (`emp_no`,`dept_no`));

注意:考察group_concat()函数

select dept_no,group_concat(emp_no) as employees from dept_emp
group by dept_no
--group_concat函数

54. 查找排除当前最大、最小salary之后的员工的平均工资avg_salary。

CREATE TABLE `salaries` ( `emp_no` int(11) NOT NULL,
`salary` int(11) NOT NULL,
`from_date` date NOT NULL,
`to_date` date NOT NULL,
PRIMARY KEY (`emp_no`,`from_date`));

注意条件当前


                
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值