有没有人能想出一个SQL例程或想法,系统地将区号附加到SQL Server 2005数据库中没有区号的每个字段的开头?
也许有人可以告诉我们如何只返回长度小于10个字符的行,以及如何在每个字段字符串的开头添加3位数字的区号?
谢谢!
发布于 2009-11-20 04:45:01
DECLARE @AreaCode char(3)
SET @AreaCode = 'XXX'
UPDATE myTable
SET myField = @AreaCode + myField
WHERE LEN(myField) < 10
AND myField NOT LIKE @AreaCode + '%'这将适用于SQL Server。
发布于 2009-11-20 04:49:26
理想情况下,区号应该是数据库中的单独列。因为它不是这样设计的:
UPDATE
PhoneNumbers
SET
phone_number = '123' + phone_number
WHERE
LEN(phone_number) = 7当然,如果人们已经格式化了电话号码,那么这将不会起作用。我需要更多地了解您的表中的数据。您可能需要执行以下操作:
UPDATE
PhoneNumbers
SET
phone_number = '(123) ' + phone_number
WHERE
LEN(REPLACE(REPLACE(REPLACE(REPLACE(phone_number, '-', ''), '(', ''), ')', ''), '.', '') = 7如果人们输入像“ext.7”这样的东西,那么事情就会变得更加复杂。明白为什么拆分一个电话号码比只有一个列更好吗?;)
https://stackoverflow.com/questions/1766375
复制相似问题