sql语句select之函数

sql语句select之函数

字符函数

一、字符函数

1.length 获取参数值的字节个数
select length(‘john’);
select length(‘张三丰hahahah’)

2.concat拼接多个字段
slect concat(last_name,’_’,first_name) as 姓名 from employees;
目的:拼接last_name和first_name字段,中间用下划线连接

3.upper将字符转为大写
select upper(‘john’);

4.lower将字符转为小写
select lower(‘joHn’);

综合案例
select concat(upper(last_name),lower(first_name)) as 姓名 from employees
目的:从employees表中将last_name字段变为大写,将first_name变为小写,然后进行拼接,最后取别名为“姓名”

5.substr获取字段子串
5.1从指定索引处获取字符
select substr(‘李莫愁爱上陆湛远’,7) as out_put;
目的:得到字符串的第7位直到最后(索引从1开始)
5.1从指定索引处获取字符到指定截至位置
select substr(‘李莫愁爱上陆湛远’,1,3) as out_put;
目的:得到字符串的第1位直到第3位(索引从1开始)

综合案例:
select concat(substr(last_name,1,1),’_’,lower(substr(last_name,2))) as out_put from employees;
目的:最终就是拼接两个字段,这两个字段分别是last_name的第一个字符,和last_name第2个字母往后的字符,然后变为小写,其中拼接时中间用下划线连接。

6.instr返回子串第一次出现的索引
select instr(‘这是一个测试数据集’,‘一个’) as out_put;返回

7. trim,去除首尾空格或者是指定字符
select length(trim(’ 张翠山 ')) as out_put
目的:除去两边空格
select trim(‘a’ from ‘aaaaaaaaaaaa张aaaaaaaaaa翠山aaaaaaaaaaaa’)
目的:除去张aaaaaaaaaa翠山两边的a,中间的不会去掉

8.lpad,rpad用指定字符实现左右填充
select lpad(‘张翠山’,2,’*’) as out__put
目的:向左补2个新号

二、字符函数

1.round四舍五入
select rount(-1.55);

2.ceil向上取整
select ceil(-1.02)

3.floor向下取整
select floor(-9.99);

4.truncate截断
select truncate(1.624562,1)
目的:第一个位数后都不要了

5.mod取余
slect mod(10,-3);

二、流程控制函数

1. if if else
select if(10<5,‘大’,'小‘);
目的:条件满足返回第一个,不满足返回第二个

2.case
第一种用法,when后具体值
select salary 原始工资 ,department_id,
case department_id
when 30 then salary1.1
when 40 then salary
1.2
when 50 then salary*1.3
else salary
end as 新工资
from employees;
目的:查询employees中,department_id为30的,salary乘以1.1倍,40的salary乘以1.2倍,50的salary乘以1.3倍.

第二种用法,when后是表达式
select salary ,
case
when salary>20000 then ‘A’
when salary>15000 then ‘B’
when salary>10000 then ‘C’
else ‘D’
end as 工资级别
from employees;
目的:从employees中,查出工资在20000以上的定为A,15000为B等

三、分组函数

sum求和、avg平均值、max最大值、min最小值、count计算个数
select sum(salary) from employees;

猜你喜欢

转载自blog.csdn.net/weixin_41885239/article/details/115899120
今日推荐