首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SQL Server 2005-向少于10个字符的记录添加区号

问SQL Server 2005-向少于10个字符的记录添加区号
EN

Stack Overflow用户
提问于 2009-11-20 04:42:58
回答 2查看 355关注 0票数 1

有没有人能想出一个SQL例程或想法,系统地将区号附加到SQL Server 2005数据库中没有区号的每个字段的开头?

也许有人可以告诉我们如何只返回长度小于10个字符的行,以及如何在每个字段字符串的开头添加3位数字的区号?

谢谢!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2009-11-20 04:45:01

代码语言:javascript
复制
DECLARE @AreaCode char(3)
SET @AreaCode = 'XXX'

UPDATE myTable
SET myField = @AreaCode + myField
WHERE LEN(myField) < 10
AND myField NOT LIKE @AreaCode + '%'

这将适用于SQL Server。

票数 3
EN

Stack Overflow用户

发布于 2009-11-20 04:49:26

理想情况下,区号应该是数据库中的单独列。因为它不是这样设计的:

代码语言:javascript
复制
UPDATE
     PhoneNumbers
SET
     phone_number = '123' + phone_number
WHERE
     LEN(phone_number) = 7

当然,如果人们已经格式化了电话号码,那么这将不会起作用。我需要更多地了解您的表中的数据。您可能需要执行以下操作:

代码语言:javascript
复制
UPDATE
     PhoneNumbers
SET
     phone_number = '(123) ' + phone_number
WHERE
     LEN(REPLACE(REPLACE(REPLACE(REPLACE(phone_number, '-', ''), '(', ''), ')', ''), '.', '') = 7

如果人们输入像“ext.7”这样的东西,那么事情就会变得更加复杂。明白为什么拆分一个电话号码比只有一个列更好吗?;)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1766375

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档