如何使用SQL从电话号码中获取区号



我有一个表,其中有一列包含1到3位数字。例如:

  1. (342(342-9324
  2. (1( 234-3424
  3. (04(234-7744等

但我不知道如何编写查询。我使用

SUBSTRING(x, 2, 3)

其中x是列的名称,但我只得到3个数字,有人想提取括号中的数字,可以是1、2或3个数字吗?这是使用sql server完成的。此外,该表有超过500万行的电话号码

如果区号在()内,则应该使用一些简单的字符串函数。

示例

Declare @YourTable Table ([Phone] varchar(50))  Insert Into @YourTable Values 
('(342) 342-9324')
,('(1) 234-3424')
,('(04) 234-7744')

Select * 
,AreaCode = replace(left(Phone,charindex(')',Phone+')')-1),'(','')
From @YourTable

退货

Phone           AreaCode
(342) 342-9324  342
(1) 234-3424    1
(04) 234-7744   04

最新更新