if(value,t,f)
:如果value
的值是true
,则返回t
否则返回f
。
select if(FALSE,'ok','false') as "结果"
IFNULL(VALUE1,VALUE2)
:如果VALUE1
的值不为空(特指 NULL
),则返回VALUE1
,否则返回VALUE2
。
select IFNULL(NULL,"value") //返回value
CASE [] WHEN [val1] THEN [res1] .... ELSE [default] END
:如果expr
等于val1
,返回res1
,. . . 否则返回default的默认值
。
SELECT
(CASE WTTKBH WHEN '物料' THEN '严重词条' when '环境' THEN '严重词条' ELSE '不严重词条' END) as '词条'
FROM
layerd_v v
ID | WTTKBH |
---|---|
1 | 物料 |
2 | 环境 |
3 | 物料 |
4 | 设备 |
5 | 环境 |
6 | 物料 |
7 | 设备 |
8 | 设备 |
9 | 设备 |
函数 | |
---|---|
CONCAT(S1,S2…Sn) | 字符串拼接,将S1,S2,Sn拼接成一个字符串 |
LOWER(str) | 将字符串str全部转为小写 |
UPPER(str) | 将字符串str全部转为大写 |
LPAD(str,n,pad) | 左填充,用字符串pad对str的左边进行填充,达到n个字符串长度 |
RPAD(str,n,pad) | 右填充,用字符串pad对str的右边进行填充,达到n个字符串长度 |
TRIM(str) | 去掉字符串头部和尾部的空格 |
SUBSTRING(str,start,len) | 返回从字符串str从start位置起的len个长度的字符串 |
#CONCAT(S1,S2....Sn)字符串拼接,将S1,S2,Sn拼接成一个字符串
SELECT CONCAT('z','b','c')
#LOWER(str)将字符串str全部转为小写
SELECT LOWER('QWE')
#UPPER(str)将字符串str全部转为大写
SELECT UPPER('qwe')
#LPAD(str,n,pad)左填充,用字符串pad对str的左边进行填充,达到n个字符串长度
SELECT LPAD(03,5,0)
#RPAD(str,n,pad)右填充,用字符串pad对str的右边进行填充,达到n个字符串长度
SELECT RPAD(3,5,0)
#TRIM(str)去掉字符串头部和尾部的空格
SELECT TRIM(' we ')
#SUBSTRING(str,start,len)返回从字符串str从start(第一位是1)位置起的len个长度的字符串
SELECT SUBSTRING('hello word',1,5)
函数 | 功能 |
---|---|
CEIL(x) | 向上取整 |
FLOOR(x) | 向下取整 |
MOD(x,y) | 返回x/y的模 |
RAND() | 返回0~1内的随机数 |
ROUND(x,y) | 求参数x的四舍五入的值,保留y位小数 |
# CEIL(x) 向上取整
SELECT CEIL(3.5)
# FLOOR(x) 向下取整
SELECT FLOOR(3.5)
# MOD(x,y) 返回x/y的模
SELECT MOD(9,5)
# RAND() 返回0~1内的随机数
SELECT RAND()*100 //这就是返回0~100以内的了
# ROUND(x,y) 求参数x的四舍五入的值,保留y位小数
SELECT ROUND(3.14159,2)
SELECT ROUND(RAND()*100,0)
函数 | 功能 |
---|---|
CURTIME() | 返回当前时间 |
NOW() | 返回当前日期和时间 |
YEAR(date) | 获取指定date的年份 |
MONTH(date) | 获取指定date的月份 |
DAY(date) | 获取指定date的日期 |
DATE_ADD(date, INTERVAL expr type) | 返回一个日期/时间值加上一个时间间隔expr后的时间值 |
DATEDIFF(date1,date2) | 返回起始时间date1和 结束时间date2之间的天数 |
CURDATE() | 返回当前日期 |
#CURTIME() 返回当前时间 时分秒
SELECT CURTIME() #15:40:22
#NOW() 返回当前日期和时间
SELECT NOW() #2024-01-22 15:40:05
#YEAR(date) 获取指定date的年份
SELECT YEAR('2024-01-03') #2024
#MONTH(date) 获取指定date的月份
SELECT MONTH('2024-01-03') #1
#DAY(date) 获取指定date的日期
SELECT DAY('2024-01-03') #3
#DATE_ADD(date, INTERVAL expr type) 返回一个日期/时间值加上一个时间间隔expr后的时间值
SELECT DATE_ADD('2024-01-01',INTERVAL 70 DAY) #2024-03-11
SELECT DATE_ADD('2024-01-01',INTERVAL 2 MONTH) #2024-03-01
SELECT DATE_ADD('2024-01-01',INTERVAL 3 WEEK) #2024-01-22
#DATEDIFF(date1,date2) 返回起始时间date1和 结束时间date2之间的天数
SELECT DATEDIFF(NOW(),'2024-02-09') #-18
#CURDATE() 返回当前日期
SELECT CURDATE() #2024-01-22
关于DATEDIFF函数的详细用例在我另外一篇文章中有详细的解释 有兴趣的可以看一下
MySQL中的DATEDIFF()函数