我有以下代碼,我正在嘗試重構以將電話號碼欄位格式化為我需要的格式:
STUFF(STUFF(STUFF(REPLACE('02 212345678','02 2','02 '), 7, 0, ' '), 3, 0, ') '), 1, 0, '(')
它當前回傳資料如下:
(02) 123 45678
我需要這種格式的地方
(02) 1234 5678
問題是右括號后的額外空間和兩邊各有 4 個數字。
uj5u.com熱心網友回復:
根據您的示例,以下內容對您有用嗎?
with sampledata as (select '02 212345678' num)
select Concat(Stuff('() ',2,0,Left(num,2)), Stuff(Right(num,8),5,0,' '))
from sampledata
uj5u.com熱心網友回復:
您現有的代碼可以作業,只需將 7 更改為 8,但我更喜歡將格式和資料分開。代碼更容易閱讀和修改:
DECLARE @PhoneNumber varchar(20) = '02 212345678';
SELECT FORMATMESSAGE('(%s) %s %s', LEFT(@PhoneNumber, 2), SUBSTRING(@PhoneNumber, 4, 4), SUBSTRING(@PhoneNumber, 8, 4) );
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/446844.html
