一、介绍
在SQL中提供了很多的内置函数,或者叫内嵌函数,包括聚合函数、数学函数,字符串函数、转
换函数,日期函数,条件函数,表生成函数等等。
二、数学函数
- 指定精度取整函数:round
-
语法: round(double a, int d)
-
说明:返回指定精度d的double类型
SELECT round(3.1415926, 3);
-
三、字符串函数
- 字符串截取函数:substr(substring)
- 两个参数
- 语法:substr(string A, int start),substring(string A, int start)
- 返回值: string
- 说明:返回字符串A从start位置到结尾的字符串
select substr('abcdef', 2);
- 三个参数
- 语法: substr(string A, int start, int len),substring(string A, intstart, int len)
- 返回值: string
- 说明:返回字符串A从start位置开始, 长度为len的字符串。
select substr('abcdef', 2, 2);
- 两个参数
- 字符串拼接函数
- concat
- 语法: concat(string A, string B…)
- 返回值: string
- 说明:返回输入字符串连接后的结果,支持任意个输入字符串
select concat('abc', 'def');
- concat_ws
- 语法: concat_ws(string SEP, string A, string B…)
- 返回值: string
- 说明:返回输入字符串连接后的结果,SEP表示各个字符串间的分隔符
select concat_ws('-', 'abc', 'def');
- concat
四、日期函数
-
year/quarter/month/day/hour
- 语法:
- year(string date)
- month(string date)
- day(string date)
- hour(string date)
- 说明:返回日期中的年/月/日/小时。
select year("2012-12-08 13:35:35"); select month("2012-12-08 13:35:35"); select day("2012-12-08 13:35:35"); select hour("2012-12-08 13:35:35");
- 语法:
-
日期格式化函数:date_format
- date_format(string time, string format)
- 说明:返回指定格式的日期
select date_format('2021-01-23', 'yyyy/MM/dd');
五、判断函数
-
If函数
- if和case差不多,都是处理单个列的查询结果
- 语法: if(boolean testCondition, T valueTrue, T valueFalseOrNull)
- 返回值: T
- 说明: 当条件testCondition为TRUE时,返回valueTrue;否则返回valueFalseOrNull。
- 示例:if(条件表达式,结果1,结果2)相当于java中的三目运算符,只是if后面的表达式类型可以不一样。
select if(1>2, 1, 2);
-
CASE WHEN THEN
- 语法:CASE WHEN a THEN b [WHEN c THEN d]* [ELSE e] END
- 说明:如果a为TRUE,则返回b;如果c为TRUE,则返回d;否则返回e
- 如:CASE WHEN 5>0 THEN 5 WHEN 4>0 THEN 4 ELSE 0 END 将返回5;CASE WHEN 5<0
THEN 5 WHEN 4<0 THEN 4 ELSE 0 END 将返回0。
select case when 2>3 then '2>3' when 2<1 then '2<1' else '0' end;