格式 Phone concat 字段内的数字 SQL

Format Phone Number inside of concat field SQL

我这里有一个独特的情况。我有一个连接字段,我称之为地址,作为该地址的一部分,我在最后一行有该地址的 phone 编号。当前 phone 号码的格式如下:

8885551212

我希望它的格式如下:

(888) 555-1212

下面是我的 INSERT 到我的临时文件 table 中,我这样做是为了让一切正确。任何有关如何使 phone 部分正常工作的指导都是很有帮助的。我确实找到了一篇关于使用函数的文章,但我不确定如何根据我的情况正确编写它。谢谢。

INSERT into #Referral_Temp (status, physician, timeFrame, date, address)
    select o.actStatus, o.actTextDisplay, apptTimeframe, apptDate,
    (select (p.address_line_1 + CHAR(13)+CHAR(10) + p.address_line_2 + CHAR(13)+CHAR(10)
             + p.city + ', ' + p.state + ' ' + p.zip + CHAR(13)+CHAR(10) + p.phone) 
             AS address)
    from order_ o
    join provider_mstr p on o.refer_to_prov_id = p.provider_id
    where o.encounterID = @enc_id

使用Stuff字符串函数将需要的特殊符号插入到字符串中。试试这个。

SELECT '('+ Stuff(Stuff('8885551212', 4, 0, ') '), 9, 0, '-') 

您可以使用 SUBSTRING 函数:

改变

+ p.phone

+ '(' + SUBSTRING(p.phone,1,3) + ') ' 
+ SUBSTRING(p.phone,4,3) + '-' 
+ SUBSTRING(p.phone,7,4)

试试这个

SELECT '(' + SUBSTRING('8885551212',1,3) + ') ' + SUBSTRING('8885551212',4,3) + '-' + SUBSTRING('8885551212',7,4)

输出将是:- (888) 555-1212