2017-10-21 12 views
0

おやすみ、皆さん。 質問はかなり明確です:文字列の途中に2つの特定の文字を追加する必要があります。SQL Server - 文字列の途中に特定の文字を1つ以上追加するにはどうすればよいですか?

例:

(それが今ある道)

ID 

12345678  
23456789  
34567891  
45678912 

私はSTUFFCONCATが、無サイコロを試みた(私はする必要が道)

ID 

12-34567-8  
23-45678-9  
34-56789-1  
45-67891-2 

+3

'STUFF'と' CONCAT'コードを表示できますか? – Moseleyi

+0

答えをありがとう。私はこれをしようとしてきた: DECLARE @String NVARCHAR(30)=の '20952634500' SELECT STUFF(STUFF(@文字列、3,0、 ' - ')、11,1、 ' - ') 私の問題は、この特殊文字を編集/追加するのに約300行があることです。 これを行う「自動」方法はありますか? – tankard

答えて

4

あなたはIDがINTではないと仮定しSTUFFまたは2012+

以下の場合でも、フォーマットを()を使用することができます。

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 
0

@ジョンCappelettiあなたの答えをありがとう!私は理由を説明することはできませんが、私のSSMS(SQL Server 2008 R2)では2つのSTUFFが順番に実行されるのを好まないようです。ちょうどそれらを2つの文に分割し、うわべ...解決しました!

ご不便をおかけして申し訳ありません。

関連する問題