sql >> Base de Datos >  >> RDS >> Sqlserver

3 formas de devolver una cadena de múltiples espacios en SQL Server

Cuando trabaja con bases de datos y los datos asociados, a veces necesita insertar un espacio al unir dos cadenas, o algunas veces necesita reemplazar un carácter con un espacio.

Y luego, a veces, necesita insertar múltiples espacios. Aquí hay 3 formas de devolver una cadena de múltiples espacios en SQL Server usando T-SQL.

Opción 1:escriba todos los espacios

La forma más obvia es simplemente escribir cada espacio que necesita. Así:

SELECT 'Homer' + '            ' + 'Satriani';

Resultado:

-------------------------
Homer            Satriani

En este ejemplo, agrego 12 espacios entre otras dos cadenas. Este método suele ser perfecto cuando solo necesita insertar uno o dos espacios. Pero una vez que necesite agregar, digamos, una docena o más, entonces puede ser más fácil usar SPACE() función.

Opción 2:La función ESPACIO()

El SPACE() La función se creó específicamente para este propósito:devolver una cadena de espacios repetidos. Simplemente escriba la función y proporcione un argumento que especifique cuántos espacios se requieren.

Entonces podemos convertir el ejemplo anterior en este:

SELECT 'Homer' + SPACE(12) + 'Satriani';

Resultado:

-------------------------
Homer            Satriani

Opción 3:La función REPLICATE()

Si necesita insertar una gran cantidad de espacios (8000 o más), debe usar REPLICATE() función. Esta función en realidad replica cualquier carácter, no solo espacios.

Entonces podemos cambiar los ejemplos anteriores a los siguientes:

SELECT 'Homer' + REPLICATE(' ', 12) + 'Satriani';

Resultado:

-------------------------
Homer            Satriani

También puedes usar CHAR() función para indicar explícitamente el carácter a utilizar. Por ejemplo, CHAR(32) para un espacio o CHAR(160) para un espacio sin interrupciones:

SELECT 'Homer' + REPLICATE(char(160), 12) + 'Satriani';

Resultado:

-------------------------
Homer            Satriani

Reemplazar un espacio con múltiples espacios

Entonces podríamos usar cualquiera de los métodos anteriores dentro de un REPLACE() función para reemplazar un solo espacio con múltiples espacios.

Aquí hay un ejemplo usando SPACE() función:

SELECT REPLACE('Homer Satriani', ' ', SPACE(12));

Resultado:

-------------------------
Homer            Satriani