Insertar o eliminar saltos de línea en SQL Server cadena

¿Cómo insertar o eliminar saltos de línea en columnas y variables de texto de SQL Server?

Este tutorial explica cómo insertar o eliminar saltos de línea almacenadas en columnas NVARCHAR o variables en SQL Server. Por ejemplo, si exporta la cadena a Excel, su línea se cortará. Si selecciona datos que contienen retorno de carro o saltos de línea en SSMS, la pantalla mostrará el contenido completo de la línea.

Después de copiar y pegar en el Editor de SQL Server o en su editor de texto favorito, como Notepad++, el texto puede contener algunos saltos de línea. O después de la integración de archivos CSV utilizando SSIS, dependiendo del tamaño de la fuente, puede ser complicado solucionarlo y identificar las líneas de error en detalle.

Por ejemplo, puede copiar y pegar una gran cantidad de datos de SSMS a Excel con saltos de línea. La hoja de Excel muestra datos no alineados, diferentes del resultado de la consulta original. Y, por supuesto, los resultados son incorrectos porque las columnas están desplazadas.

La tabla no está estructurada como se desea porque cada salto de línea crea una nueva línea. ¡Ya no tiene el mismo número de columnas y líneas en su archivo de Excel! Estos saltos de línea a menudo son un problema en archivos muy grandes porque son difíciles de encontrar y solucionar. La solución es eliminarlos directamente desde la consulta de SQL Server.

1. Preparar una tabla con datos de muestra de texto

Es necesario preparar un conjunto de datos para insertar o eliminar saltos de línea en las columnas o variables de texto de SQL Server. Entonces, preparemos una tabla SQL Server con algunos datos de muestra que contengan saltos de línea. Dividimos la columna de dirección en tres líneas diferentes. Ejecute la siguiente consulta. Realiza 4 operaciones SQL diferentes:

  1. Comprueba si existe la tabla Customers y luego la elimina.
  2. Crea la tabla de clientes.
  3. Inserta una sola línea de datos, con múltiples saltos de línea en la columna de dirección.
  4. Selecciona todos los datos de la tabla.
-- 1. Si la tabla existe, elimínela
IF EXISTS(  
   SELECT 1 FROM sys.objects
   WHERE object_id = object_id(N'dbo.CUSTOMERS') 
      AND type in (N'U') )
BEGIN DROP TABLE [dbo].[CUSTOMERS]
END;
GO

-- 2. Cree la tabla CUSTOMERS
CREATE TABLE [dbo].[CUSTOMERS] (
   [CustomerID] INT IDENTITY(1,1),
   [FirstName] NVARCHAR(20),
   [LastName] NVARCHAR(20),
   [AddressText] NVARCHAR(100),
   [CountryCode] NVARCHAR(3),
   [CountryName] NVARCHAR(50)
);
GO

-- 3. Inserte la primera cantidad de ventas de cada mes
INSERT INTO dbo.CUSTOMERS ( FirstName, LastName, AddressText, CountryCode, CountryName )
VALUES ( N'SMITH',N'John', 
N'123,
Mount Gatineau Avenue,
Ottawa',
N'CA',N'CANADA');
GO

-- 4. Selecciona para comprobar los datos
SELECT * FROM dbo.CUSTOMERS;
GO

Luego, si copia y pega la columna AddressText desde el resultado del servidor SQL, notará que la dirección contiene dos saltos de línea, tal como se muestra en la instrucción INSERT.

123,
Mount Gatineau Avenue,
Ottawa

2. Eliminar los saltos de línea en MS SQL con REPLACE

Para eliminar los saltos de línea en SQL Server, puede utilizar la función integrada REPLACE junto con los códigos CHAR(13) y CHAR(10). Estos dos códigos específicos representan los caracteres del salto de línea. Luego, puede reemplazarlos con un espacio o una coma. Por ejemplo, para limpiar la columna de dirección de saltos de línea, puede utilizar la siguiente consulta:

-- Comprobar los resultados
SELECT   CustomerID, FirstName, LastName, AddressText
FROM   dbo.CUSTOMERS;

-- Utilizar la función REPLACE para eliminar los saltos de línea
SELECT   CustomerID, FirstName, LastName,
        REPLACE(AddressText,CHAR(13)+CHAR(10),' ')
FROM dbo.CUSTOMERS;

Esta vez, la copia y pegado da como resultado la siguiente dirección sin saltos de línea, las tres partes de la dirección están en la misma línea:

123, Mount Gatineau Avenue, Ottawa
Insertar o eliminar saltos de línea en columnas de texto de SQL Server
Insertar o eliminar saltos de línea en columnas de texto de SQL Server

3. Insertar saltos de línea en una cadena T-SQL

Para agregar saltos de línea en una columna o cualquier variable de texto en una consulta de T-SQL, simplemente agregue los dos caracteres especiales como se muestra a continuación. Para realizar lo contrario, utilice el mismo método pero invierta los argumentos en la función, por ejemplo, reemplace un espacio o un carácter particular por el par:

  • CHAR(13)
  • CHAR(10)
-- Consulta para agregar un retorno de carro y construir la dirección completa
SELECT
   [CustomerID]
   ,[FirstName]
   ,[LastName]
   ,[AddressText] + CHAR(13) + CHAR(10)
   +[CountryCode] + CHAR(13) + CHAR(10)
   +[CountryName] AS [FullAdress]
FROM dbo.CUSTOMERS;

Para ver los retornos de carro, active la opción Resultados en texto dentro de SSMS.

4. Conclusión sobre saltos de línea en SQL Server

En conclusión, los retornos de carro o saltos de línea no son un gran problema en SQL Server. Pueden manejarse asegurándose de que los caracteres CHR(10) y CHR(13) se manejen correctamente. El control de entrada ayuda mucho a reducir el número de caracteres insertados en la base de datos.

Además, se pueden eliminar o insertar saltos de línea con las funciones REPLACE y CHAR de T-SQL, lo que facilita la manipulación de cadenas de texto en SQL Server. Es importante tener en cuenta que la eliminación o inserción de saltos de línea puede afectar la legibilidad y la presentación de los datos, por lo que se debe hacer con cuidado y de manera consciente. En general, se recomienda ser consistente en la forma en que se manejan los saltos de línea en la base de datos y en las aplicaciones que interactúan con ella.

Preguntas sobre saltos de línea en MS SQL

¿Qué es un salto de línea en texto?

Un salto de línea o retorno de carro ocurre cuando una línea se corta en dos o más partes y el resto de la línea actual aparece en la siguiente.

¿Cuál es la mejor herramienta para editar un archivo de texto?

Uno de los mejores programas para editar un archivo de texto es Notepad++, ya que permite editar archivos medianamente grandes sin fallas y reconoce muchos otros lenguajes como HTML, CSS, PHP, XML o SQL.

¿Cuál es la diferencia entre los caracteres especiales char(13) y char(10)?

Ambos caracteres especiales char(13) y char(10) tienen que ver con los saltos de línea en los archivos de texto. Char(13) es el retorno de carro y char(10) es el símbolo de avance de línea.

¿Cómo eliminar los saltos de línea de una columna de SQL Server?

Para eliminar directamente el retorno de carro o avance de línea de una columna de SQL, simplemente aplique un método de reemplazo para eliminarlo y reemplazarlo con un espacio o una cadena vacía.