Java和SQL取两个字符间的值
Java
String str = "abcdefg";String result = str.substring(str.indexOf(">") 1, str.lastIndexOf("<"));
StringUtils.substringBefore(“abcdec”, “c”); 结果是:ab 这里是以第一个”c”为标准。StringUtils.substringBeforeLast(“abcdec”, “c”) 结果为:abcde这里是以倒数第一个”c”为标准。
SQL
对“*”及以前的字符进行截取
在sql中可以使用下边函数进行截取特殊字符: substr(str,instr(str,'*',1) 1)
其中,使用了substr函数和instr函数。 1、substr(string,start_position,[length])求子字符串,返回字符串
第一个参数表示要截取的字符串,第二个表示起始位置,第三个表示截取的长度,可省略。
2、instr(string,subString,position,ocurrence) 查找字符串的位置
第一个参数表示源字符串,第二个是要查找的字符,第三个是要查找的开始位置,第四个是查找的字符是第几个。
取一个字段中两个字符之间信息
1、substring(a.specifications,charindex(':',a.specifications,charindex(';',specifications)) 1,1)SQL报错FUNCTION db.charindex does not exist
2、使用substring_index语法
用法规则:substring_index(“待截取有用部分的字符串”,“截取数据依据的字符”,截取字符的位置N)
具体要截取第N个逗号前部分的字符,在字符串中以逗号为索引,获取不同索引位的字符。N可以为负数,表示倒数第N个索引字符后面的字符串。(有负号的时候,可以将整个字符倒过来看,依旧是第N个字符前面的部分。)
具体例子:首先假定需要截取的字符串为“192;168;8;203”,这里截取的依据是分号:“;”
结果如下:
取第一个逗号前的字符串 :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
原始发表:2019-10-30 , 如有侵权请联系 cloudcommunity@tencent.com 删除
社区
活动
资源
关于
腾讯云开发者
扫码关注腾讯云开发者
领取腾讯云代金券
热门产品
热门推荐
更多推荐
Copyright © 2013 - 2023 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有
深圳市腾讯计算机系统有限公司 ICP备案/许可证号: 粤B2-20090059 深公网安备号 44030502008569
腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287