2011-10-18 12 views
17

Ho una tabella in un database SQL (MS) che ha una colonna Id (identity, int) e una colonna Name (varchar (250)). Tuttavia, i valori nella colonna del nome contengono (in modo abbastanza casuale) spazi iniziali e finali poiché penso che siano stati tagliati e incollati da "qualcos'altro" (non so cosa!).È possibile ritagliare tutti i valori in una colonna in una singola istruzione?

E 'possibile in T-SQL per effettuare le seguenti operazioni:

update MyTable set Name = trim(name) 

e farlo aggiornare tutte le colonne di nome con il valore rifilato?

risposta

52

MS SQL non dispone di una funzione trim. Avrai bisogno di usare rTrim e lTrim insieme.

update MyTable set Name = lTrim(rTrim(name)) 
+0

Grazie @Bazza , non mi meraviglia che non sia riuscito a trovare Trim! – BlueChippy

9

Prova

update MyTable set Name = LTRIM(RTRIM((name)) 
2

In SQL Server c'è solo RTRIM e LTRIM, ma entrambi si possono usare insieme:

update MyTable set Name = RTRIM(LTRIM((name)) 
3

Si potrebbe provare questo:

UPDATE MyTable 
SET Name = LTRIM(RTRIM(Name)) 

Date un'occhiata here per creare una funzione all'interno del tuo database per usarlo più velocemente

+0

Grazie @Bazza la risposta è apparsa prima, ma grazie per le informazioni extra. – BlueChippy

+0

@BlueChippy: prego! :) – Marco

0

Non proprio - non c'è TRIM() funzione disponibile, quindi bisogna usare RTRIM() e LTRIM() (destra e sinistra-trim, rispettivamente):

UPDATE MyTable set Name = rtrim(ltrim(name)) 
1

Prova questo:

UPDATE [table] SET [column1] = REPLACE([column1],'i:0#.w|',' ')

Problemi correlati