加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net – 用于修复表中的电话号码问题的SQL查询

发布时间:2020-12-16 03:58:02 所属栏目:asp.Net 来源:网络整理
导读:我有一个包含电话号码列的表.如何输入电话号码没有限制.目前,电话号码采用以下格式 123-456-7890(123)-456-78901234567890 我想更新表格,并以123-456-7890格式显示所有电话号码.我有超过20k的记录.我可以使用SQL Query执行此操作,还是必须在ASP或PHP中使用正
我有一个包含电话号码列的表.如何输入电话号码没有限制.目前,电话号码采用以下格式

123-456-7890
(123)-456-7890
1234567890

我想更新表格,并以123-456-7890格式显示所有电话号码.我有超过20k的记录.我可以使用SQL Query执行此操作,还是必须在ASP或PHP中使用正则表达式?

编辑:注意最佳答案是修改后的问题,电话号码(123)-456-78790更改为(123)456-7890

解决方法

如果它们严格使用这3种格式中的一种,则可以通过使用SUBSTRING并测试每个项目的LEN,在SQL中轻松完成.

如果还有其他格式,我建议使用更好的文本操作语言,例如.net.

编辑添加:

鉴于您的评论现在只有3种格式,您可以这样做:

declare @t table (x varchar(20))
insert into @t 
select '123-456-7890'
union select '(123)456-7890'
union select '1234567890'

select 
    case 
      when len(x) = 10 then 
        substring(x,1,3) + '-' + substring(x,4,7,4)
      when len(x) = 13 then
        substring(x,2,6,8)
      else x
    end
from @t

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读