- Oracle中INSTR函数与SQL Server中CHARINDEX函数
- 1.ORACLE中的INSTR
- INSTR函数格式:INSTR(源字符串, 目标字符串, 起始位置, 匹配序号)
- 说明:返回从 ‘起始位置’ 开始查找 ‘源字符串’ 中与 ‘目标字符串’ 第 ‘匹配序号’ 次匹配的位置
- 例如:返回从第4位字符开始SQL_Server_2008字符串中第2次出现字符串er的位置
- select INSTR('SQL_Server_2008','er',4,2 ) as result from dual;
- 结果:9
- 2.SQL Server中的CHARINDEX
- CHARINDEX函数格式:CHARINDEX( targetStr , srcStr [,start_location ] )
- 说明:返回目标字符(串)在源字符串字符串中出现的起始位置
- select CHARINDEX('er','SQL_Server_2008',10) ;
- 结果:0
- select CHARINDEX('er','SQL_Server_2008',7) ;
- 结果:9
- select CHARINDEX('er','SQL_Server_2008') ;
- 结果:6
- 返回结果说明:返回0说明没有查找到符合条件的字符(串)
想要使用SUBSTR函数和INSTR函数截取目标字段:
SUBSTR(a.DM,5,INSTR(DM||'-','-'))