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

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

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

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

原文地址:https://www.cnblogs.com/zuizui1204/p/6698884.html