2014-02-10 2 views
1

SQL의 nvarchar 문자열에서 여섯 번째 문자를 제거해야합니다. 나는 열에 대해 모든 행에서 이것을해야한다. 예를 들어문자열에서 여섯 번째 문자를 제거하십시오.

:

111116111111 

모든 레코드의 길이는 12 자, 그래서 그것을 11 문자를 확인하고 6 일을 제거해야합니다.

누구든지 나를 도와 줄 수 있습니까? 고맙습니다.

+0

같은 쿼리를 작성할 수있는 길이에 내놓고을 할 수있는 2 가지 방법이 있습니다. – Jeff

답변

3

당신은

UPDATE table 
set column = LEFT(column,5) + RIGHT (column,6) 

을 할 수하지만 어쩌면 사람이 같은 결과를 달성하는 애호가 방법이있다.

0
select left([ColumnName],5)+right([ColumnName],6) 

등 다음과 같이 :

declare @Something as nvarchar(12) 
set @Something = '111116111111' 

select @Something, left(@Something,5)+right(@Something,6) 

는 (예 : 숫자로 데이터 형식 NVARCHAR을 변환 할 수 없습니다 등) 변환 오류를 제공하는 경우, 당신은 표현의 양면을 캐스팅 할 수 있습니다.

0

STUFF() 기능을 사용하여이를 수행 할 수도 있습니다.

DECLARE @STRING VARCHAR(20) = '111116111111' 

SELECT STUFF(@STRING, 6, 1, '') 

Result : '11111111111' 

UPDATE

UPDATE table 
    SET Column_Name = STUFF(Column_Name, 6, 1, '') 
    WHERE LEN(Column_Name) = 12 
0

안녕하세요 우리는 모든 일이, 감사이

declare @Something as nvarchar(12) 
set @Something = '111116111111' 

select CASE WHEN LEN(@Something) >= 12 THEN STUFF(@Something,6,1,'') 
ELSE @Something END 

or else 6 value is constant then we can use replace function 

declare @Something as nvarchar(12) 
set @Something = '111116111111' 
Select REPLACE(@Something,6,'') 
관련 문제