一:concat() —— 字符串拼接
格式:concat(字串1, 字串2, 字串3, ...)
1、Mysql中使用 (可以正常使用concat函數來進行多個字段的拼接)
SELECT CONCAT(字段1,字段2,字段3) FROM table WHERE 1 = 1; 結果: "字段1字段2字段3"
2、Oracle中使用(不可以使用concat函數來拼接多個字段,只能拼接兩個字段,需要使用 "||" 或者 "+" 來連接)
SELECT CONCAT(字段1 , 段2) FROM table WHERE 1 = 1; 結果一: "字段1字段2" SELECT 字段1 || 字段2 || 字段3 FROM table WHERE 1 = 1; 結果二: "字段1字段2字段3" SELECT 字段1 + 字段2 + 字段3 FROM table WHERE 1 = 1; 結果三: "字段1字段2字段3"
二:substr() —— 字符串截取
格式1: substr(string string, int a, int b);
格式2:substr(string string, int a);
1、string需要截取的字符串
2、a起始位置(一般從1開始比較方便記憶,但是0和1都是認為從第一個字符開始截取的)
3、b截取長度(若不寫b則代表從a開始后邊所有的字符串)
select substr('HelloWorld',2) value from dual; --返回結果:elloWorld,截取從“e”開始之后所有字符 select substr('HelloWorld',-2) value from dual; --返回結果:ld,從最后一個“d”開始 往回截取2個字符 select substr('HelloWorld',2,3) value from dual; --返回結果:ell,截取從“e”開始3個字符 select substr('Hello World',5,3) value from dual; --返回結果:o W (中間的空格也算一個字符串,結果是:o空格W) select substr('HelloWorld',-2,3) value from dual; --返回結果:ld (從后面倒數第二位開始往后取2個字符,而不是3個。原因:下面紅色 第三個注解)
三:instr() —— 字符串查找
格式一:instr( string1, string2 )
格式二:instr( string1, string2 [, start_position [, nth_appearance ] ] )
1、instr(源字符串, 目標字符串, 起始位置i, 檢索次數) 起始位置是從1算起的。
2、string2 的值要在string1中查找,是從起始位置第 i 處開始檢索,返回檢索到string2出現的n次的位置
3、如果查找失敗則返回0.
select instr('helloworld','l') from dual; --返回結果:3 默認第一次出現“l”的位置 select instr('helloworld','l',3,2) from dual; --返回結果:4 也就是說:在"helloworld"的第3(l)號位置開始,查找第二次出現的“l”的位置 select instr('helloworld','l',-2,3) from dual; --返回結果:3 也就是說:在"helloworld"的倒數第2(l)號位置開始,往回查找第三次出現的“l”的位置