2017-10-21 6 views
0

잘자, 여러분. 질문은 꽤 명확합니다. 문자열 중간에 2 개의 특정 문자를 추가해야합니다.SQL Server - 문자열 중간에 하나 이상의 특정 문자를 추가하려면 어떻게합니까?

예 :

(현재 상황)

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 다도 (다도 (@ 문자열, 3,0, '-'), 11,1, '-') 내 문제는이 특수 문자를 편집/추가하는 데 약 300 개의 행이 있다는 것입니다. 이렇게하려면 '자동'방법이 있습니까? – tankard

답변

4

당신은 ID가 INT하지 가정 다도 또는 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 문장으로 나눠서 ...

불편을 끼쳐 드려 죄송합니다.