2012-02-21 10 views
7

Ecco la tabella, valore di ogni colonna è avvolto con le doppie virgolette (")Come sbarazzarsi della doppia citazione dal valore della colonna? .?

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

Come rimuovere doppia citazione da ogni colonna ho provato questo per ogni colonna: -

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

ma alla ricerca di una soluzione più affidabile. Questo ha esito negativo se una colonna ha trailing spazio bianco

+0

si potrebbe usare TRIM() per sbarazzarsi di ultimi spazi bianchi - lo farei loro stesso modo – dom

+1

ti aspetti preventivi nei dati effettivi? – gbn

+0

@Aaron questo è corretto non taglia le doppie virgolette ma, come per l'ultima frase nella sua domanda, si preoccupa degli spazi bianchi finali ... – dom

risposta

26

Basta usare SOSTITUIRE?

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

La tua risposta è anche buona. Ma poi devo scrivere aggiorna tabl ..... per ogni colonna ... mentre senza clausola dove posso aggiornare tutte le colonne in una dichiarazione di aggiornamento .. Grazie comunque – 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

rapido e sporco, ma funzionerà :-) Si potrebbe espandersi e scrivere questo come una procedura negozio prendendo in nome di una tabella, carattere che si desidera sostituire, carattere da sostituire con, Esegui un variabile String, ecc ...

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') 
Problemi correlati