2008-10-07 35 views

Respuesta

167
SELECT LTRIM(RTRIM(Names)) AS Names FROM Customer 
+3

esta es la manera más fácil de hacerlo, sólo recuerdo a un alias a su columna se devuelve – Miles

+1

@Miles - añadí el alias para la integridad. –

+2

Entiendo que esta es la forma correcta de utilizar el recorte del valor. , pero ¿puede explicar por qué usar tanto LTRIM como RTRIM cuando podríamos haber usado solo TRIM? –

53

para recortar a la derecha, utilice:

SELECT RTRIM(Names) FROM Customer 

para recortar a la izquierda, utilice:

SELECT LTRIM(Names) FROM Customer 

para recortar en los dos lados, uso:

SELECT LTRIM(RTRIM(Names)) FROM Customer 
+3

Incidentalmente, ¿qué posible motivo podría tener Microsoft para incluir una función LTRIM y RTRIM sin un TRIM? Es peculiar. –

+0

Porque es redundante. Puede lograr lo mismo con LTRIM (RTRIM (var)). – Kibbee

+41

Sí, pero eso son dos llamadas de función. Se podría decir que todos son redundantes ya que TSQL tiene CHARINDEX y SUBSTRING, pero esa es una manera idiota de verlo. –

6

Supongo que se trata de un ejercicio de depuración de datos único. Una vez hecho esto, asegúrese de agregar restricciones a la base de datos para evitar datos incorrectos en el futuro, p.

ALTER TABLE Customer ADD 
    CONSTRAINT customer_names__whitespace 
     CHECK (
      Names NOT LIKE ' %' 
      AND Names NOT LIKE '% ' 
      AND Names NOT LIKE '% %' 
      ); 

Considere también no permitir otros caracteres (tabulación, retorno de carro, avance de línea, etc.) que puedan causar problemas.

También puede ser un buen momento para dividir esos nombres en family_name, first_name, etc :)

0

en SQL Server 2008 R2 con la expresión ssis tenemos la función de cortar.

SQL Server Integration Services (SSIS) es un componente del software de base de datos Microsoft SQL Server que se puede utilizar para realizar una amplia gama de tareas de migración de datos.

se puede encontrar la descripción completa en este enlace

http://msdn.microsoft.com/en-us/library/ms139947.aspx

pero esta función tiene alguna limitación en sí mismo que también son mencionados por MSDN en esa página. pero esto es en SQL Server 2008 R2

TRIM(" New York ") .The return result is "New York". 
+3

Esto no tiene nada que ver con MS SQL, excepto que se trata de un producto incluido en la base de datos. – siride

3
SELECT LTRIM(RTRIM(Replace(Replace(Replace(name,' ',' '),CHAR(13), ' '),char(10), ' '))) 
from author 
Cuestiones relacionadas