字符串函数
案例:
-- 拼接字符串 输出:HelloWorld
SELECT CONCAT('Hello', 'World');
-- 小写 输出:
SELECT LOWER('Hello');
-- 大写 输出:hello
SELECT UPPER('Hello');
-- 左填充 输出:***01
SELECT LPAD('01', 5, '*');
-- 右填充 输出:01***
SELECT RPAD('01', 5, '*');
-- 去除两边的空格 输出:Hello World
SELECT TRIM(' Hello World ');
-- 切片(起始索引为1) 输出:Hello
SELECT SUBSTRING('Hello World', 1, 5);
-- 返回字符段的长度 输出:7
select LENGTH('abcdefg') --7
-- substring:字符串,起始下标,长度
返回提取的字符串, select SUBSTRING('abcdefg',2,2)得到结果:bc,从第2位开始截取,截取两位。
substring (str,pos):str代表字符串;pos代表从第位置开始到结尾的所有字符串;注意此语法不适用于sql server
-- substring_index(“待截取有用部分的字符串”,“截取数据依据的字符”,截取字符的位置N)
具体要截取第N个逗号前部分的字符,在字符串中以逗号为索引,获取不同索引位的字符。
N可以为负数,表示倒数第N个索引字符后面的字符串。(有负号的时候,可以将整个字符倒过来看,依旧是第N个字符前面的部分。)
取第一个分号前的字符串 :
SELECT SUBSTRING_INDEX('192;168;8;203',';',1);
==>得到结果为: 192
取最后分号后面的部分:
SELECT SUBSTRING_INDEX('192;168;8;203',';',-1);
==>得到结果为: 203
取第2个逗号前那部分字符串里,最后逗号后面的部分
SELECT SUBSTRING_INDEX(SUBSTRING_INDEX('192;168;8;203',';',2),';',-1);
==>得到结果为: 168
取倒数第二个逗号后面部分字符串,再去这部分里第一个都号前的部分:
SELECT SUBSTRING_INDEX(SUBSTRING_INDEX('192;168;8;203',';',-2),';',1);
==> 得到结果为:8
--substr(string,start_position,[length]) 求子字符串,返回字符串
第一个参数表示要截取的字符串,第二个表示起始位置,第三个表示截取的长度,可省略。
SELECT substr('ABCDEFG',3) 输出:CDEFG
--instr(string,subString,position,ocurrence) 查找字符串的位置
第一个参数表示源字符串,第二个是要查找的字符,第三个是要查找的开始位置,第四个是查找的字符是第几个。
SELECT instr('ABCDEFG','C') 输出:3
例子:
--往后推70天
SELECT DATE_ADD(NOW(),INTERVAL 70 DAY)
--往后推70月
SELECT DATE_ADD(NOW(),INTERVAL 70 MONTH)
--往后推70年
SELECT DATE_ADD(NOW(),INTERVAL 70 YEAR)
例子:
--如果1大于0返回ok 不大于0返回ERROR
SELECT if(1>0,'OK','ERROR')
--如果第一个参数不null则返回ok,如果为null则返回ERROR
SELECT IFNULL('0K','ERROR')
--如果第一个参数不null则返回空,如果为null则返回ERROR
SELECT IFNULL('','ERROR')
--如果第一个参数为null则返ERROR
SELECT IFNULL(NULL,'ERROR')
-- 如果城市字段参数是北京则返回一线城市,如果是上海也返回一线城市,否则返回二线城市 相当于switch
SELECT CASE 城市字段 WHEN 北京 THEN 一线城市 WHEN 上海 THEN 一线城市 ELSE 二线城市 END
-- if () {}else if () {} else if () {}else {}
SELECT CASE WHEN 2>0 THEN 'ok' WHEN 1>0 THEN '0K' ELSE 'ERROR'END
CASE WHEN 80>70 THEN '优秀' END
文章参考:
哔哩哔哩动画 bilibili.com 博主:黑马程序员。
链接:https://www.imooc.com/article/details/id/295767 来源:慕课网 作者:陈晨辰_
如果想转发和使用请加上作者和网址,谢谢!
如果发现文章有问题请指出,谢谢!
后续会继续更新,阅读请关注小昵称。