晚安,鄉親們。 問題很明顯:我需要在字符串中添加2個特定字符。SQL Server - 如何在字符串中添加一個或多個特定字符?
例子:
(在現在是這樣)
ID
12345678
23456789
34567891
45678912
我已經STUFF
和CONCAT
,但沒有骰子嘗試(我需要的方式)
ID
12-34567-8
23-45678-9
34-56789-1
45-67891-2
。
晚安,鄉親們。 問題很明顯:我需要在字符串中添加2個特定字符。SQL Server - 如何在字符串中添加一個或多個特定字符?
例子:
(在現在是這樣)
ID
12345678
23456789
34567891
45678912
我已經STUFF
和CONCAT
,但沒有骰子嘗試(我需要的方式)
ID
12-34567-8
23-45678-9
34-56789-1
45-67891-2
。
您可以使用STUFF甚至格式()如果2012+
以下假設ID是不是INT。
例
Declare @YourTable Table ([ID] varchar(50))
Insert Into @YourTable Values
(12345678)
,(23456789)
,(34567891)
,(45678912)
Select *
,ViaFormat = format(cast(ID as int),'00-00000-0')
,ViaStuff = stuff(stuff(ID,8,0,'-'),3,0,'-')
From @YourTable
返回
ID ViaFormat ViaStuff
12345678 12-34567-8 12-34567-8
23456789 23-45678-9 23-45678-9
34567891 34-56789-1 34-56789-1
45678912 45-67891-2 45-67891-2
@約翰Cappeletti謝謝您的回答!我無法解釋爲什麼,但似乎我的SSMS(SQL Server 2008 R2)不喜歡2個STUFF按順序執行。只是將它們分成2個句子,瞧...解決了!
對不起,我的問題造成的不便。
你能告訴我們'STUFF'和'CONCAT'代碼嗎? – Moseleyi
感謝您的回答。我一直在試圖用這樣的: DECLARE @String NVARCHAR(30)= '20952634500' SELECT STUFF(STUFF(@字符串,3,0 ' - '),11,1, ' - ') 我的問題是,我有大約300行來編輯/添加這個特殊字符。 是否有「自動」的方式來做到這一點? – tankard