单行函数
格式:select 函数(实参列表)from table
分类:
1. 单行函数,2. 分组函数
**目录**
一.字符函数
二.数学函数
三.日期函数
四.流程控制函数
一.字符函数
1.-length #获取的是字节个数,utf-8编码,汉字2,字母1
select length(' hhh哈 ' )from table =>结果为5
2.-concat #拼接字符串
select concat(name,'----------',age) from table =>结果 小明-----18
3.-upper:字母变大写 - lower:字母变小写
select upper('aBcD') =>结果ABCD
select upper('aBcD') =>结果abcd
4.-substr/-substring(string,开始索引,截取长度) #字符串截取
#两个参数,截取索引处后面所有字节
select substr('123456789',5)=>结果为56789
#三个参数
#SQL里索引从1开始,并不是0
#从1开始后面五个字节长度,看好,是字节
select substr('123456789',1,5)=>结果为12345
5.-instr(string,string) #返回子串的起始索引
select instr('abcdef','cd') =>结果为3
select instr('abcdef','aa') =>结果为0
6.-trim#去除字符串两端的字符或者空格
#去除空格
select trim(' abc ') =>结果为 'abc'
#去除指定字符
select trim('a' from 'aaaa啊啊aaaa啊啊aa') =>结果为 '啊啊aaaa啊啊'
7.-lpad #指定的字符实现左填充
#10指的是结果需要10个字符
select lpad('索马里',10,'*') =>结果*******索马里
#数据本身长度大于指定则从右边截断
select lpad('索马里',2,'*') =>结果索马
-rpad #指定的字符实现右填充
select rpad('索马里',10,'*') =>结果索马里*******
#数据本身长度大于指定则从左边截断
select rpad('索马里',2,'*') =>结果马里
8.replace 替换
select replace('abababcc','a','b')结果为=>bbbbbbcc
二.数学函数
1.round #四舍五入
#绝对值四舍五入然后再加上符号
select round(-1.45) =>结果为-1
#两个参数,第二个参数为保留多少小数
select round(-1.456,2) =>结果为-1.46
2.cell #向上取整
#返回大于参数的最小整数
select cell(-1.45) =>结果为-1
2.floorl #向下取整
#返回大于参数的最小整数
select floor(-1.45) =>结果为-2
3.-truncate#截断,小数点后保留位数
#返回大于参数的最小整数
select truncate(-1.459999,1) =>结果为-1.4
4.-mod#取模/取余
#值=a-a/b*b
select mod(10,3) =>结果是1
三.日期函数
1.-now() # 日期函数
select now() 返回标准日期格式yyyy-MM-dd- HH-mm-ss
2.-str_to_data #字符串转时间
select str_to_data('1999-08-10','%Y-%m-%d')
select str_to_data('10-1999-08','%d-%Y-%m')
3.-data_format #日期转字符串
select data_format(now(),%Y-%m-%d)
四.流程控制函数
1.-if(判断,true返回,false返回)
select if(age>18,成年,未成年)
2.-case
格式
case(要判断的字段或者表达式)
#如果只是值可以不加分号,语句需要加分号
when 常量1 then 要显示的值1或者语句1;
when 常量2 then 要显示的值2或者语句2;
else 要显示的值n或者语句n;
end
3.-case第二种使用,类似于多重if else
case
#如果只是值可以不加分号,语句需要加分号
when 常量1 then 要显示的值1或者语句1;
when 常量2 then 要显示的值2或者语句2;
else 要显示的值n或者语句n;