¿Cuál es la mejor manera de eliminar todos los espacios de una cadena en SQL Server 2008?
LTRIM(RTRIM(' a b '))
eliminaría todos los espacios a la derecha e izquierda de la cadena, pero también necesito eliminar el espacio en el medio.
sql
sql-server
string
whitespace
trim
Ananth
fuente
fuente
Respuestas:
Simplemente reemplácelo;
Editar: solo para aclarar; es un reemplazo global, no hay necesidad
trim()
o preocupación por múltiples espacios parachar
ovarchar
:Resultado
fuente
Yo usaría un REEMPLAZO
REEMPLAZAR
fuente
Si se trata de una actualización en una tabla, todo lo que tiene que hacer es ejecutar esta actualización varias veces hasta que afecte a 0 filas.
fuente
REPLACE()
función :fuente
Referencia tomada de este blog:
Primero, cree una tabla de muestra y datos:
Script para SELECCIONAR cadena sin espacios adicionales:
Resultado:
fuente
100% de trabajo
Puedes usar
"column_name"
ocolumn_name
Gracias
Subroto
fuente
select replace(replace(replace(varcharColumn,char(13),''),char(10),''),' ','')
para eliminar todas las líneas nuevas y espacios de unavarchar
columna. Si usé '\ n' y '\ r' en lugar de char (13) y char (10) no funcionó.t-sql reemplaza http://msdn.microsoft.com/en-us/library/ms186862.aspx
reemplazar (val, '', '')
fuente
Si hay varios espacios en blanco en una cadena, reemplazar puede no funcionar correctamente. Para eso, se debe utilizar la siguiente función.
Ejemplo:
Salida:
fuente
Esto hace el truco de eliminar los espacios en las cadenas:
fuente
En caso de que necesite RECORTAR espacios en todas las columnas, puede usar este script para hacerlo dinámicamente:
fuente
si desea eliminar espacios, - y otro texto de la cadena, use lo siguiente:
supongamos que tiene un número de teléfono móvil en su tabla como '718-378-4957' o '7183784957' y desea reemplazar y obtener el número de teléfono móvil y luego usar el siguiente texto.
Resultado: - 7183784957
fuente
Solo un consejo, en caso de que tenga problemas con la función de reemplazo, es posible que tenga el tipo de datos establecido en nchar (en cuyo caso es una longitud fija y no funcionará).
fuente
Para completar todas las respuestas anteriores, hay publicaciones adicionales en StackOverflow sobre cómo lidiar con TODOS los caracteres de espacios en blanco (consulte https://en.wikipedia.org/wiki/Whitespace_character para obtener una lista completa de estos caracteres):
fuente
replace (replace (column_Name, CHAR (13), ''), CHAR (10), '')
fuente
Esto es útil para mí:
.
fuente
Tuve este problema hoy y reemplazar / recortar hizo el truco ... ver a continuación.
antes y después de :
fuente
LTRIM
&RTRIM
?Para eliminar los espacios en una cadena izquierda y derecha. Para quitar espacio en el medio de uso
Replace
.Puede usar
RTRIM()
para eliminar espacios de la derecha yLTRIM()
para eliminar espacios de la izquierda, por lo tanto, los espacios izquierdo y derecho se eliminan de la siguiente manera:fuente
Sintaxis para reemplazar caracteres específicos:
Por ejemplo, en la cadena "HelloReplaceThingsGoing" Reemplazar palabra se reemplaza por Cómo
fuente
Una versión funcional (udf) que elimina espacios, cr, lf, tabuladores o configurables.
Resultado: '234asdfwefwef3x'
fuente
Por alguna razón, el reemplazo funciona solo con una cadena cada vez. Tenía una cadena como esta " Test MSP " y quiero dejar solo un espacio.
Utilicé el enfoque que hizo @Farhan, pero con algunas modificaciones:
Luego ejecuto mi actualización así
Entonces obtuve este resultado: Prueba MSP
Publicando aquí si en caso de que alguien lo necesite como yo lo hice.
Ejecutando en: Microsoft SQL Server 2016 (SP2)
fuente
Verifique y pruebe el siguiente script (Unidad probada):
fuente
Parece que todos siguen refiriéndose a una sola función REPLACE. O incluso muchas llamadas de una función REPLACE. Pero cuando tiene una salida dinámica con un número desconocido de espacios, no funcionará. Cualquiera que se ocupe de este problema regularmente sabe que REPLACE solo eliminará un espacio, NO TODOS, como debería. Y LTRIM y RTRIM parecen tener el mismo problema. Déjalo en manos de Microsoft. Aquí hay una salida de muestra que utiliza un bucle WHILE para eliminar TODOS los valores CHAR (32) (espacio).
Aquí está la salida del código anterior:
Ahora, para ir un paso más allá y utilizarlo en una instrucción UPDATE o SELECT, cámbielo a udf.
Luego utilice la función en una instrucción SELECT o INSERT:
fuente