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
Java和SQL取两个字符间的值的更多相关文章
- 【HANA系列】SAP HANA SQL计算两个日期的差值
公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[HANA系列]SAP HANA SQL计算两个 ...
- exl表格找两个字符间的数据
例子找的是]XXX,中间的内容 =MID(B2,FIND("]",B2)+1,FIND(",",B2)-FIND("]",B2)-1) ...
- SQL 取两日期的记录
SELECT TOP 1000 [ID] ,[SourcePageID] ,[PlatformType] ,[CreateTime] FROM [home_sendor ...
- java实现两台电脑间TCP协议文件传输
记录下之前所做的客户端向服务端发送文件的小项目,总结下学习到的一些方法与思路. 注:本文参考自<黑马程序员>视频. 首先明确需求,在同一局域网下的机器人A想给喜欢了很久的机器人B发送情书, ...
- FromBase64String 输入的不是有效的 Base-64 字符串,因为它包含非 Base-64 字符、两个以上的填充字符,或者填充字符间包含非法字符
js前台: <input id="upload_img_input" v-on:change="onFileChange" type="file ...
- Base64 报错 的解决办法 (Base-64 字符数组或字符串的长度无效。, 输入的不是有效的 Base-64 字符串,因为它包含非 Base-64 字符、两个以上的填充字符,或者填充字符间包含非法字符。)
Base64 报错 的解决办法, 报错如下:1. FormatException: The input is not a valid Base-64 string as it contains a n ...
- 注册许可证出现“输入的不是有效的 Base-64 字符串,因为它包含非 Base-64 字符、两个以上的填充字符,或者填充字符间包含非空白字符”
问题描述: 引入失败!输入的不是有效的 Base-64 字符串,因为它包含非 Base-64 字符.两个以上的填充字符,或者填充字符间包含非空白字符 解决方案: 去注册cloud7.0的产品,重新引入 ...
- SQL表两列取一列唯一值的记录
问下SQL表两列取一列唯一值的 A列 B列 C列 1001 AA 2012-01-02 1001 BB 2012-02-05 100 ...
- mybatis项目报错:java.sql.SQLException: ORA-00911: 无效字符 解决方法
如果你用java写程序访问数据库,出现这个问题:java.sql.SQLException: ORA-00911: 无效字符 at oracle.jdbc.driver.DatabaseError.t ...
随机推荐
- 基于VS2013的MFC窗体按钮事件触发案例(亲测可用)
学过python的小朋友们一定对python freeze命令不陌生,这一命令用于导出python安装模块,用于新电脑可以快速的配置安装所需的模块,以便快速的加入项目. 那么我们大可以用 window ...
- CentOS重新安装yum
1.问题描述 有时会出现yum不可用的错误,可以先卸载再重装. 2.操作步骤 (1).下载Python-iniparse-0.4 -9.el7.noarch.rpm (2).下载yum-3.4. ...
- 括号序列的dp问题模型
括号序列的dp问题模型 Codeforces314E ◦给定一个长度为n的仅包含左括号和问号的字符串,将问号变成左括号或 右括号使得该括号序列合法,求方案总数. ◦例如(())与()()都是合法的括号 ...
- 2.RabbitMq-持久化
RabbitMq-消息持久化 问题:怎样保证消息不因生产者gg而丢失我们知道了如何在消费者的角度保证消息不丢失,但如果生产者gg了呢,消息同样会丢失,生产者gg后会默认丢弃所有的消息,除非告诉它某些消 ...
- JS基础_数组的方法
常用的方法 1.push:向数组的末尾添加一个或更多元素,并返回新的长度. 将要添加的元素作为方法的参数传递,这些元素将会自动添加到数组的末尾 var a=[1,2,3]; var r = a.pus ...
- 在debian下安装QT 5.10 32位
准备工作: 在开始之前最好把GCC升级到5.0以上. 如果升级后出现“libstdc++.so.6: version `CXXABI_1.3.9' not found”错误,可以参考https://b ...
- Qt DLL总结【一】-链接库预备知识
1.链接库概念 静态链接库和动态链接库介绍 我们可以创建一种文件里面包含了很多函数和变量的目标代码,链接的时候只要把这个文件指示给链接程序就自动地从文件中查找符合要求的函数和变量进行链接,整个查找过程 ...
- CefGlue获取网页源代码
1.编写一个CefStringVisitor类: public class MyStringVisitor : CefStringVisitor { private readonly TaskComp ...
- UML绘图工具
画UML图与写文章差不多,都是把自己的思想描述给别人看,关键在于思路和条理,图好看与否就是看你的字是否规范,至于工具,就像你用什么笔,不算非常重要. 目前市场上常见的建模工具有StarUML,IBM ...
- C++代码匈牙利命名规范
一.类 除了异常类等个别情况(不希望用户把该类看作一个普通的.正常的类之情况)外,C++类/结构的命名应该遵循以下准则: C++类的命名 类的名称都要以大写字母“C”开头,后跟一个或多个单词.为 ...