赞
踩
格式1:instr( string1, string2 )
格式1解释 :instr(源字符串, 目标字符串)
格式2:instr( string1, string2, start_position, nth_appearance)
格式2解释:instr(源字符串, 目标字符串, 起始位置, 匹配序号)
格式1实例
- select instr('helloworld','l') from table
- --返回结果:3 默认第一次出现“l”的位置
-
- select instr('helloworld','low') from table
- --返回结果:4 即“low”同时出现,第一个字母“l”出现的位置
-
- select instr('helloworld','world') from table
- --返回结果:6 即“world”同时出现,第一个字母“w”出现的位置
格式2实例
- select instr('helloworld','l',2,2) from table
- -- 返回结果:4 也就是说:在"helloworld"的第2(e)号位置开始,查找第二次出现的“l”的位置
-
- select instr('helloworld','l',3,2) from table
- -- 返回结果:4 也就是说:在"helloworld"的第3(l)号位置开始,查找第二次出现的“l”的位置
-
-
-
- select instr('helloworld','l',-1,1) from table
- -- 返回结果:9 也就是说:在"helloworld"的倒数第1(d)号位置开始,往回查找第一次出现的“l”的位置
-
- select instr('helloworld','l',-2,2) from table
- -- 返回结果:4 也就是说:在"helloworld"的倒数第2(l)号位置开始,往回查找第二次出现的“l”的位置
-
格式1:substr(string, start_position, str_num)
格式1解释:substr(需要截取的字符串, 截取字符串的开始位置, 要截取的字符串的长度)
格式2:substr(string, start_position)
格式2解释:substr(需要截取的字符串, 截取字符串start_position后所有的字符串)
- -- 例1
- select substr('Hello,World',1,3) as substr_value from table
- -- 返回结果:Hel,截取从“H”开始3个字符
- -- 例2
- select substr('Hello,World',2,3) as substr_value from table
- -- 返回结果:ell,截取从“e”开始3个字符
- -- 例3
- select substr('HelloWorld',0,100) as substr_value from table
- -- 返回结果:HelloWorld,100虽然超出预处理的字符串最长度,但不会影响返回结果,系统按预处理
- -- 字符串最大数量返回。
- -- 例4
- select substr('Hello World',5,3) as substr_value from table
- -- 返回结果:o W (中间的空格也算一个字符串,结果是:o空格W)
- -- 例5
- select substr('HelloWorld',-1,3) as substr_value from table
- -- 返回结果:d (从后面倒数第一位开始往后取1个字符,而不是3个
- -- 例6
- select substr('HelloWorld',-2,3) as substr_value from table
- -- 返回结果:ld (从后面倒数第二位开始往后取2个字符,而不是3个
- -- 例7
- select substr('HelloWorld',-3,3) as substr_value from table
- -- 返回结果:rld (从后面倒数第三位开始往后取3个字符)
- -- 例8
- select substr('HelloWorld',-4,3) as substr_value from table
- -- 返回结果:orl (从后面倒数第四位开始往后取3个字符)
- -- 例9
- select substr('HelloWorld',0) as substr_value from table
- -- 返回结果:HelloWorld,截取所有字符
- -- 例10
- select substr('HelloWorld',1) as substr_value from table
- -- 返回结果:HelloWorld,截取所有字符
- -- 例11
- select substr('HelloWorld',2) as substr_value from table
- -- 返回结果:elloWorld,截取从“e”开始之后所有字符
- -- 例12
- select substr('HelloWorld',3) as substr_value from table
- -- 返回结果:lloWorld,截取从“l”开始之后所有字符
- -- 例13
- select substr('HelloWorld',-1) as substr_value from table
- -- 返回结果:d,从最后一个“d”开始 往回截取1个字符
- -- 例14
- select substr('HelloWorld',-2) as substr_value from table
- -- 返回结果:ld,从最后一个“d”开始 往回截取2个字符
- -- 例15
- select substr('HelloWorld',-3) as substr_value from table
- -- 返回结果:rld,从最后一个“d”开始 往回截取3个字符
-

1、当start_position这个参数等于0或1时,都是从第一位开始截取
2、假如HelloWorld之间有空格,那么空格也将算在里面
3、虽然例5、例6截取的都是3个字符,结果却不是3 个字符;当从后往前截取字段时,只要 |start_position| < str_num,那么取的是|start_position|的个数;
当 |start_position| ≥ str_num时,才取str_num的个数,如例7,例子8
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。