Oracle中INSTR函数与SQL Server中CHARINDEX函数

时间:2021-11-29 15:23:16
  1. Oracle中INSTR函数与SQL Server中CHARINDEX函数
  2. 1.ORACLE中的INSTR
  3. INSTR函数格式:INSTR(源字符串, 目标字符串, 起始位置, 匹配序号)
  4. 说明:返回从 ‘起始位置’ 开始查找 ‘源字符串’ 中与 ‘目标字符串’ 第 ‘匹配序号’ 次匹配的位置
  5. 例如:返回从第4位字符开始SQL_Server_2008字符串中第2次出现字符串er的位置
  6. select INSTR('SQL_Server_2008','er',4,2 ) as result from dual;
  7. 结果:9
  8. 2.SQL Server中的CHARINDEX
  9. CHARINDEX函数格式:CHARINDEX( targetStr , srcStr [,start_location ] )
  10. 说明:返回目标字符(串)在源字符串字符串中出现的起始位置
  11. select CHARINDEX('er','SQL_Server_2008',10) ;
  12. 结果:0
  13. select CHARINDEX('er','SQL_Server_2008',7) ;
  14. 结果:9
  15. select CHARINDEX('er','SQL_Server_2008') ;
  16. 结果:6
  17. 返回结果说明:返回0说明没有查找到符合条件的字符(串)

想要使用SUBSTR函数和INSTR函数截取目标字段:

SUBSTR(a.DM,5,INSTR(DM||'-','-'))