2012-02-21 19 views
7
İşte

tablodur, her sütun değeri çift tırnak (") ile sarılır Sütun değerinden çift tırnaktan nasıl kurtulur? .?

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

Nasıl her sütundan çift tırnak kaldırmak için ben her sütun için bu çalıştı: -

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

fakat daha güvenilir çözüm arayan. Bu, herhangi bir sütun

+0

() beyaz sonunda boşluk kurtulmak - i yapacağını onlar aynı şekilde – dom

+1

gerçek verilerdeki tırnak bekliyor musunuz? – gbn

+0

@Aaron bunu düzeltiyor, çift tırnakları kırpmıyor ama son cümlesine göre, sondaki beyaz boşluklar hakkında endişe duyuyor ... – dom

cevap

26

Sadece DEĞİŞTİRİN kullanmak sondaki boşlukları varsa başarısız?

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

Cevabınız da iyidir.Ama yazmam gerek tablonun her bir sütun için güncellenmesine izin verin… oysa, tümceleri bir güncelleme ifadesinde güncelleyebilirim. – 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

Hızlı ve Kirli ama genişletebilir olabilir :-) çalışmak ve bir tablo adını alarak bir mağaza prosedür olarak bu yazacak, değiştirmek istediğiniz karakter ile değiştirmek karakter, bir yürütme Dize değişkeni, vb ... Eğer TRIM kullanabilirsiniz

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') 
İlgili konular