2012-02-21 3 views
7
여기

는 테이블, 각 열 값은 큰 따옴표 (")로 감싸 열의 값에서 큰 따옴표를 제거하는 방법은 무엇입니까? .?

Name Number  Address Phone1 Fax Value Status 
"Test" "10000000" "AB" "5555" "555" "555" "Active" 

어떻게 각 열에서 따옴표를 제거하기 위해 나는 각 열에 대해이 시도 : -

UPDATE Table 
SET Name = substring(Name,1,len(Name)-1) 
where substring(Name,len(Name),1) = '"' 

하지만 더 신뢰할 수있는 솔루션을 찾고.이 모든 열이

+0

()는 흰색 후행 공백을 제거하는 - 나는 그것을 할 것입니다 그들은 같은 방식으로 – dom

+1

는 실제 데이터에 따옴표를 기대합니까? – gbn

+0

@Aaron thats는 큰 따옴표를 없애지는 못하지만 그의 질문에서 마지막 문장마다 그는 후행 공백에 대해 걱정합니다 ... – dom

답변

26

그냥 교체 사용 후행 공백 경우 실패?

,
... 
SET Name = REPLACE(Name,'"', '') 
... 
10
UPDATE Table 
    SET Name = REPLACE(Name, '"', '') 
    WHERE CHARINDEX('"', Name) <> 0 
+0

당신의 대답은 또한 좋습니다.하지만 작성해야합니다 업데이트 tabl ..... 각 열에 대해 ... while 절없이 한 업데이트 문에서 모든 열을 업데이트 할 수 있습니다. 어쨌든 고마워요 – User13839404

0
create table #t 
(
    Name varchar(100) 
) 

insert into #t(Name)values('"deded"') 
Select * from #t 

update #t Set Name = Coalesce(REPLACE(Name, '"', ''), '') 
Select * from #t 
drop table #t 
0

신속하고 더러운하지만 당신은 확장 할 수 :-) 일을하고 테이블 이름에 복용하는 저장 프로 시저로이 쓸 것, 바꿀 문자로 대체 할 문자는 실행 문자열 변수, 등등 ... 당신은 TRIM을 사용할 수

DECLARE 
@TABLENAME VARCHAR(50) 

SELECT @TABLENAME = 'Locations' 

SELECT 'Update ' + @TABLENAME + ' set ' + column_Name + ' = REPLACE(' + column_Name + ',''"'','''')' 
FROM INFORMATION_SCHEMA.COLUMNS 
WHERE TABLE_NAME = @TABLENAME 
and data_Type in ('varchar') 
관련 문제