Delphi数据库编程

3.SQL字符串截取技巧

2019-08-14  本文已影响0人  bshoes

       有时我们会临时写一些SQL脚本来统计一些东西,或者是提供视图或者存储过程给第三方使用。但是有些内容是串联起来存在一个字段中的。

比如:sMZ(民族)      sLx(联系方式)

              01/汉族            tel:123456/qq:87654321/phone:13812345678

SELECT SUBSTRING('01/汉族',4,2)   汉族

SELECT RIGHT('01/汉族',2)   汉族  --也是一样的 

取民族很简单 如果要取手机号phone 就比较麻烦了,因为我们不知道QQ是几位的

或者qq电话可能没有填写了,单纯依靠字段长度截取不了的。

这样就需要变通下了:

SELECT SUBSTRING('tel:123456/qq:87654321/phone:13812345678',

charindex('/phone','tel:123456/qq:87654321/phone:13812345678')+1,1000)

使用charindex获取'/phone'字符的其实位置 嵌套SUBSTRING截取

如果在MySQL中还可以这样:

substring_index('tel:123456/qq:87654321/phone:13812345678', '/', -1) 

'phone:13812345678' 截取第一个 '/' (倒数)之后的所有字符

substring_index('tel:123456/qq:87654321/phone:13812345678', '/', 1) 

'tel:123456' 截取第一个 '/' 之前的所有字符

上一篇 下一篇

猜你喜欢

热点阅读