SQL SERVER 里面 怎么取出特定的字符

比如一个数据库中 有个字段里面包含了“ 133号码 、133账号为: 、133账号为:、13380201202” 信息很杂乱,

怎么写查询取出13380201202 这个11位的号码,

我想的是通过循环来查询133后面第4位号码位数字的字段位数,然后通过 SUBSTRING函数来取,

假设数据库名是:全量
包含电话的字段名是:投诉内容

因为涉及到循环,写不出来查询了

我用patindex('%133[0-9][0-9][0-9][0-9][0-9][0-9][0-9]%',]解决了,类似正则函数

你可以把结果变成数组啊 就用、进行分割,然后循环数组 没有汉字就是你要的13380201202 这个了

sqlserver支持with递归,可以在查询中实现类似循环的效果;
另外,你这种需求一般是使用正则截取来处理,但是sqlserver里没有正则函数,所以可以通过新建一个自定义函数来实现正则截取的效果