一尘不染

如果字符串不是数字,SQL如何删除字符串的最后一个字符?

sql

PhoneNumber
1111111
1111111name
1111111ext2222name
1111111ex222name

我有一列电话号码,看起来像这样。电话号码后面可以跟一个分机号,然后跟一个名字。我想从电话号码中删除姓名。我怎样才能做到?


阅读 90

收藏
2022-07-21

共1个答案

一尘不染

只需一点字符串操作

Declare @YourTable Table ([PhoneNumber] varchar(50))
Insert Into @YourTable Values 
 ('1111111')
,('1111111name')
,('1111111ext2222name')
,('1111111ex222name')

Select * 
      ,NewValue = substring([PhoneNumber],1,len([PhoneNumber])-patindex('%[0-9]%',reverse([PhoneNumber])))
 From  @YourTable

结果

PhoneNumber         NewValue
1111111             111111
1111111name         111111
1111111ext2222name  1111111ext222
1111111ex222name    1111111ex22
2022-07-21