常⽤数据库字符串处理函数举例
1、字符串拼接函数
MySQL:select concat('123','456'); 可以链接多个字符串。其中只要⼀个为null,则结果为null。
SQLServer:select '123'+'456';字符串函数puts
Oracle:select '123'||'456' from dual; 可链接多个。 select concat('123','456') from dual;只能链接两个,只要有⼀个不为null,则结果就不为null。
MySQL:concat_ws(分隔符,字符串1,字符串2,...)函数, 表⽰concat with separator,即有分隔符的字符串连接。
2、字符串截取函数
SQLServer:SUBSTRING(string,start_position,length) 需要注意的是这⾥的start_position是从1开始,不同于数组是从0开始。
Oracle:substr( string, start_position, [ length ] ) substr('⽬标字符串',开始位置,长度),从1开始。写成0的话效果同1。
MySQL:left(str, length); right(str, length); substring(str, pos); substring(str, pos, len); select substring_index('ample', '.', 2);截取第⼆个 '.' 之前的所有字符。得到 'ample'。subString起始位为1,如果写为0,返回空⽩字符串。
3、字符串查函数
MySQL:INSTR(str,substr); 返回⼦串substr在字符串str中的第⼀个出现的位置。
select INSTR('foobarbar', 'bar');
-> 4
select INSTR('xbar', 'foobar');
-> 0
SQLServer:CHARINDEX ( expression1 , expression2 [ , start_location ] ); Expression1是要到expression2中寻的字符
中,start_location是CHARINDEX函数开始在expression2中expression1的位置。
Oracle:INSTR(源字符串, ⽬标字符串, [起始位置], [匹配序号]); 例如:INSTR('CORPORATE FLOOR','OR', 3, 2)中,源字符串
为'CORPORATE FLOOR', ⽬标字符串为'OR',起始位置为3,取第2个匹配项的位置。
4、判空函数
Oracle:NVL( string1, replace_with); 如果string1为NULL,则NVL函数返回replace_with的值,否则返回string1的值,如果两个参数都为NULL ,则返回NULL。NVL2(expr1,expr2,expr3); 如果参数表达式expr1值为NULL,则NVL2()函数返回参数表达式expr3的值;如果参数表达式expr1值不为NULL,则NVL2()函数返回参数表达式expr2的值。
MySQL,SQLServer:IFNULL(expr1,expr2); 如果expr1不是NULL,IFNULL()返回expr1,否则它返回expr2。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论