No SQL Server, você pode usar o T-SQL
SPACE()
função para gerar um número específico de espaços. Isso pode ser útil para adicionar espaços em uma string, por exemplo, ao concatenar duas ou mais strings.
A forma como funciona é que você fornece o número de espaços que você precisa e ele retornará uma string exatamente com esse número de espaços.
Sintaxe
A sintaxe fica assim:
SPACE ( integer_expression )
Onde integer_expression é um inteiro positivo que indica o número de espaços. Se este for um valor negativo,
NULL
é devolvido. Exemplo 1 – Uso básico
Veja um exemplo de como funciona:
SELECT SPACE(40) AS Result;
Resultado:
+------------------------------------------+ | Result | |------------------------------------------| | | +------------------------------------------+
Se não estiver claro, isso resultou em 40 espaços.
Exemplo 2 – Concatenação com espaços
Este exemplo pode demonstrar o efeito um pouco melhor.
SELECT 'Keep' + SPACE(10) + 'away!' AS Result;
Resultado:
+---------------------+ | Result | |---------------------| | Keep away! | +---------------------+
Exemplo 3 - Valor inteiro negativo
O argumento precisa ser um valor positivo. Se for um valor negativo, o resultado é
NULL
:SELECT SPACE(-10) AS Result;
Resultado:
+----------+ | Result | |----------| | NULL | +----------+
Exemplo 4 – Um exemplo de banco de dados
Aqui está um exemplo simples de usar
SPACE()
para inserir espaço entre duas colunas de banco de dados quando retornado de um banco de dados:USE Music; SELECT TOP(7) ArtistName + SPACE(5) + AlbumName AS 'Artist and Album' FROM Artists ar INNER JOIN Albums al ON ar.ArtistId = al.ArtistId INNER JOIN Genres g ON al.GenreId = g.GenreId WHERE g.Genre = 'Rock';
Resultado:
+-------------------------------------------+ | Artist and Album | |-------------------------------------------| | Iron Maiden Powerslave | | AC/DC Powerage | | Devin Townsend Ziltoid the Omniscient | | Devin Townsend Casualties of Cool | | Devin Townsend Epicloud | | Iron Maiden Somewhere in Time | | Iron Maiden Piece of Mind | +-------------------------------------------+
E quanto a 1 ou 2 espaços?
Essa é uma ótima função para adicionar muitos espaços, mas também pode melhorar a legibilidade do código ao incluir um pequeno número de espaços – especialmente se o código contiver muitas instâncias de adição de espaços.
Ao usar
SPACE()
você pode ver quantos espaços em um instante, sem precisar contá-los. Por exemplo, veja se você pode dizer quantos espaços estão no seguinte:
SELECT 'Keep' + ' ' + 'away!';
Sua primeira reação pode ser um palpite rápido (digamos, “2 ou 3”), antes de olhar um pouco mais de perto para verificar. Para ter 100% de certeza, você provavelmente teria que passar o cursor sobre o espaço para contar o número de espaços.
Agora observe o seguinte código:
SELECT 'Keep' + SPACE(2) + 'away!';
Não há necessidade de adivinhar. Você pode ver
2
escrito direto no código. Dito isso, o valor pode estar dentro de uma variável, para que seu código fique mais parecido com isso:
SELECT 'Keep' + SPACE(@space_size) + 'away!';
O que, obviamente, não fornece nenhuma pista sobre quantos espaços existem (sem ter que procurar). No entanto, se você já conhece o valor de
@space_size
você é bom para ir. Exemplo 5 - Tamanho de espaço variável
Aqui está um exemplo que demonstra o ponto anterior.
Aqui, o número de espaços é definido dentro de uma variável. Neste caso é fácil ver o valor da variável, pois está definido na linha imediatamente anterior ao
SPACE()
função (obviamente, isso nem sempre será o caso):DECLARE @space_size int SET @space_size = 2 SELECT 'Keep' + SPACE(@space_size) + 'away!' AS Result GO
Resultado:
+-------------+ | Result | |-------------| | Keep away! | +-------------+
Unicode ou mais de 8.000 espaços?
A Microsoft afirma que, para incluir espaços em dados Unicode ou retornar mais de 8.000 espaços de caracteres, você deve usar
REPLICATE
em vez de SPACE
.