2009-06-04 10 views
2

J'ai une table avec 6 millions + enregistrements, mais le premier champ a un "au début et le dernier champ a" à la fin je suppose que lorsque vous faites un encart en vrac, ils ont oublié de le retirer. Je veux exécuter une requête de mise à jour qui supprimera le « de ces 2 champs données de l'échantillon -Comment découper ces champs de guillemets dans SQL Server?

Field 1  
"18157142 
"18157152 
"18157159 
"18157177 
"18157189 
"18157191 
"18157197 
"18157208 
"18157223 
"18157224 

Field 2 (Last field) 
243901" 
832218" 
506356" 
78301" 
753201 - Automobile Body" 
553111 - Automobile Parts & Supplies-Retail" 
581203" 
792903 - Music" 
653118" 
541105 - Grocers" 

également pas de place dans ce domaine ne le » apparaître nulle part ailleurs si son juste 1 "pour retirer de la terrain.

Toutes les idées?

+0

Quel est le moteur base de données utilisez-vous? – tekBlues

+0

Oh SQL Server, désolé, je vois – tekBlues

Répondre

7
Update myTable 
SET 
    Field1 = Replace(Field1, '"', ''), 
    Field2 = Replace(Field2, '"', '') 

Cela pourrait fonctionner plus rapidement que d'autres recommandations parce que vous n'aurez pas à exercer une fonction de longueur de chaîne supplémentaire appelle à déterminer jusqu'à quel point compter sur. Cela remplacera simplement toutes les occurrences des guillemets, ce qui a été demandé à l'origine (puisque les citations n'apparaîtront nulle part où elles pourraient ne pas vouloir être supprimées).

0

Ceci est la mise à jour,

update table 
set field1 = right(field1,length(field1)-1), 
field2 = left(field1,length(field1)-1) 

le problème est la transaction énorme qu'il va générer ...

+0

en utilisant la fonction Replace() dans SQL Server pour quelque chose comme ceci serait plus facile puisque nous savons que les citations ne seront pas trouvées ailleurs et peuvent être accidentellement effacées. – TheTXI

0

Si vous avez le temps d'attendre que je voudrais juste:

update [tableName] set field1 = right(field1, len(field1) -1) 

update [tableName] set field2 = left(field2, len(field2) -1) 
0
UPDATE TableName 
SET Field1 = MID(Field1,2) 
    Field2 = MID(Field2,1,LEN(Field2)-1) 
0
UPDATE MyTable 
SET Field1 = RIGHT(Field1, LEN(Field1) - 1), Field2 = LEFT(Field2, LEN(Field2) - 1) 
0
UPDATE [table] 
SET  [field1] = RIGHT([field1], LEN([field1]) - 1), 
     [field2] = LEFT( [field2], LEN([field2]) - 1) 
Questions connexes