在 concat 字段 SQL 中设置电话号码的格式



我这里有一个独特的情况。我有一个串联字段,我呼叫地址,作为此地址的一部分,我在最后一行有该地址的电话号码。目前电话号码的格式如下:

8885551212

我希望它的格式如下:

(888) 555-1212
下面是我插入

到我的临时表中,我这样做是为了正确处理所有内容。有关如何使手机部分正常工作的任何指导都是一个很大的帮助。我确实找到了一篇关于使用函数的文章,但我不确定如何根据我的情况正确编写它。谢谢。

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

您可以使用 SUBSTRING 函数:

改变

+ p.phone

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

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

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

试试这个

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

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

最新更新