2011-10-18 18 views
17

Tengo una tabla en una base de datos SQL (MS) que tiene una columna Id (identidad, int) y una columna Nombre (varchar (250)). Sin embargo, los valores en la columna de nombre contienen espacios iniciales y finales (bastante aleatorios) ya que creo que fueron cortados y pegados de "otra cosa" (¡no sé qué!).¿Es posible recortar todos los valores en una columna en una sola instrucción?

¿Es posible en T-SQL para hacer lo siguiente:

update MyTable set Name = trim(name) 

y haga que la actualización de todas las columnas de nombre con el valor recortado?

Respuesta

52

MS SQL no tiene una función de ajuste. Tendrá que usar rTrim y lTrim juntos.

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

Gracias @Bazza , ¡no es de extrañar que no haya podido encontrar a Trim! – BlueChippy

9

Trate

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

En SQL Server sólo hay RTRIM y LTRIM, pero se pueden usar los dos juntos:

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

Usted podría intentar esto:

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

Tome una mirada here para crear una función dentro de su base de datos para usarla más rápido

+0

Gracias @Bazza respuesta apareció primero, pero gracias por la información adicional. – BlueChippy

+0

@BlueChippy: ¡de nada! :) – Marco

0

No del todo - no hay TRIM() función disponible, así que hay que utilizar RTRIM() y LTRIM() (derecho e izquierdo del ajuste, respectivamente):

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

Prueba esto:

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

Cuestiones relacionadas