sql语句如何获取两个固定字符串中间的不定长度字符串?

表userinfo字段phone有如下数据:
固话:0310-4081990,手机:
固话:0310-703886,手机:13103106327
固话:0310-8771613,手机:15227961348
固话:-,手机:13653104144
……
要把固话与手机用“,”隔开非别给cellphone手机和telephone座机,请问如何分别获取固话和手机号码?急,,,先感谢了。。。。

1)用两个charindex函数即可获取两个位置,然后用substring
2)不建议采用这种数据存储方式,建议变更为两个字段,固话、手机。
温馨提示:内容为网友见解,仅供参考
第1个回答  推荐于2017-12-16
Select substring(phone,charindex(':',phone)+1,charindex(',',phone)-charindex(':',phone)-1) as 固话,
right(phone,len(phone)-charindex(':',phone,charindex(',',phone))) as 手机 from userinfo

你可以测试一下。如果不成功 看看是不是 “:”写的是应为还是中文的。 替换再试试。本回答被提问者采纳

sql语句如何获取两个固定字符串中间的不定长度字符串?
1)用两个charindex函数即可获取两个位置,然后用substring2)不建议采用这种数据存储方式,建议变更为两个字段,固话、手机。 vcsuzhou | 发布于2013-08-15 举报| 评论 0 0 为您推荐: sql语句面试题及答案 mysql sql分解字符串 sql语句组合字符 sql语句 典型 sql 字符串分段 sql 字符串 拼接 sql se...

如何用SQL 语句截取两个固定字符之间的字符串?
select substring(字符串,1,PATINDEX(<'%字符串%'>,'丘')-1) as 字符1 ,substring(字符串,PATINDEX(<'%字符串%'>,'丘')+1,PATINDEX(<'%字符串%'>,'栋')-PATINDEX(<'%字符串%'>,'丘')+1) as 字符2 from 表名

SQL截取两个特定值之间的文字
substring(string,startNumber, endNumber) 返回第一个参数中从第二个参数指定的位置开始、第三个参数指定的长度的子字符串。 例子: CHARINDEX('SQL', 'Microsoft SQL Server')这个函数命令将返回在“Microsoft SQL Server”中“SQL”的起始位置,在这个例子中,CHARINDEX函数将返回“S”在“Microsoft SQL Server”中...

sql server 取两个字符之间的字符
MS SQL:取“明”和“地”之间的:select SUBSTRING(a.a, CHARINDEX('明', a.a)+1, CHARINDEX('地', a.a)-CHARINDEX('明', a.a)-1 )from(select '床前明月光疑是地上霜' as a )a 包含“明”与“地”:select SUBSTRING(a.a, CHARINDEX('明', a.a), CHARINDEX('地', a.a)-...

sql获取指定字符串之间的字符串
可以这样,如为字段则用字段名替换@str即可 declare @str varchar(50)set @str = '2012-07:电表(00300):单价[¥1.30]*用量[9000.00]';select substring(@str,charindex('¥',@str,1)+ 1,charindex(']',@str,charindex('¥',@str,1)) - charindex('¥',@str,1) -1) as 单价,subs...

如何用sql语句实现特定字符之间的字符提取
好久没有写过SQL了,花了一个小时把你的问题解决了,加20分,快!CREATE TABLE [#tmp] ([数字] [varchar] (35) COLLATE Chinese_PRC_CI_AS NULL ,) ON [PRIMARY]declare @Len int set @Len=1 declare @hen int set @hen=1 while @hen>0 begin SELECT @hen=CHARINDEX('-', substring(...

SQL如何截取指定字符后的字符串,位数不确定。
用SUBSTRING 。这个就是截取字段的

求大侠,sql语句获取指定字段之间的字符串
首先我需要确定一下,客户编码,票,订这三个长度是固定的 可以用 select substr(备注,1,36) from 表名

sql中截取字符串中间数据
那么如果有这几个字,那就比较好办了,用oracle可以用instr,如果是其他数据库我就不知道了,不过也肯定有类似的函数,定位后就可以通过定位的结果就是数字然后就可以进行截取了。如果没有这几个字 比如:32232323XXXLsadasdasdDL121212,其中大写的XXXL和DL表示尺寸和材质(这里为了看的稍微方便一点,所以...

请问SQL 2008如何截取字符串中间段内容
--方法一replace函数去掉引号就是没有引号字符串:select replace(zh,''','') from 表 --如果真要截取的话也是可以的. 先left去掉最后一个引号,然后stuff去掉第一个引号即可 select stuff(left(zh,len(zh)-1),1,1,'') from 表 如有问题可以追问,我当及时回答。希望能帮到你!

相似回答