SQL语句之函数查询--SQL常用函数

SQL语句之函数查询–SQL常用函数

一、字符函数

1.length 获取参数值的字节个数

select length('john');
select length('张三丰hahahah');

2.concat拼接多个字段

select 
	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.2从指定索引处获取字符到指定截至位置

select substr('李莫愁爱上陆湛远'13) 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 round(-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 salary*1.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倍.,最后将salary重命名为 ”新工资“

第二种用法,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;
  • 3
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值