Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

3 maneiras de retornar uma string de vários espaços no SQL Server


Ao trabalhar com bancos de dados e os dados associados, às vezes você precisa inserir um espaço ao unir duas strings, ou às vezes você precisa substituir um caractere por um espaço.

E às vezes você precisa inserir vários espaços. Aqui estão 3 maneiras de retornar uma string de vários espaços no SQL Server usando T-SQL.


Opção 1:digite todos os espaços


A maneira mais óbvia é simplesmente digitar cada espaço que você precisa. Assim:
SELECT 'Homer' + '            ' + 'Satriani';

Resultado:
-------------------------
Homer            Satriani

Neste exemplo eu adiciono 12 espaços entre duas outras strings. Esse método geralmente é perfeito quando você só precisa inserir um ou dois espaços. Mas uma vez que você precisa adicionar, digamos, uma dúzia ou mais, pode ser mais fácil usar o SPACE() função.

Opção 2:a função SPACE()


O SPACE() função foi construída especificamente para este propósito – para retornar uma string de espaços repetidos. Basta digitar a função e fornecer um argumento que especifique quantos espaços são necessários.

Então podemos converter o exemplo anterior para isso:
SELECT 'Homer' + SPACE(12) + 'Satriani';

Resultado:
-------------------------
Homer            Satriani

Opção 3:A função REPLICATE()


Se você precisar inserir um número muito grande de espaços (8000 ou mais), use o REPLICATE() função. Esta função realmente replica qualquer caractere – não apenas espaços.

Assim, podemos alterar os exemplos anteriores para o seguinte:
SELECT 'Homer' + REPLICATE(' ', 12) + 'Satriani';

Resultado:
-------------------------
Homer            Satriani

Você também pode usar o CHAR() função para indicar explicitamente o caractere a ser usado. Por exemplo, CHAR(32) para um espaço ou CHAR(160) para um espaço sem quebra:
SELECT 'Homer' + REPLICATE(char(160), 12) + 'Satriani';

Resultado:
-------------------------
Homer            Satriani

Substituindo um espaço por vários espaços


Assim, poderíamos usar qualquer um dos métodos acima dentro de um REPLACE() função para substituir um único espaço por vários espaços.

Aqui está um exemplo usando o SPACE() função:
SELECT REPLACE('Homer Satriani', ' ', SPACE(12));

Resultado:
-------------------------
Homer            Satriani