In SQL Server können Sie das T-SQL SPACE()
verwenden Funktion zum Generieren einer bestimmten Anzahl von Leerzeichen.
Dies kann praktisch sein, um Leerzeichen in eine Zeichenfolge einzufügen, beispielsweise wenn zwei oder mehr Zeichenfolgen verkettet werden.
So funktioniert es:Sie geben die Anzahl an Leerzeichen an, die Sie benötigen, und es wird eine Zeichenfolge mit genau dieser Anzahl an Leerzeichen zurückgegeben.
Syntax
Die Syntax lautet wie folgt:
SPACE ( integer_expression )
Wobei Ganzzahl_Ausdruck ist eine positive Ganzzahl, die die Anzahl der Leerzeichen angibt. Wenn dies ein negativer Wert ist, NULL
zurückgegeben wird.
Beispiel 1 – Grundlegende Verwendung
Hier ist ein Beispiel dafür, wie es funktioniert:
SELECT SPACE(40) AS Result;
Ergebnis:
+------------------------------------------+ | Result | |------------------------------------------| | | +------------------------------------------+
Wenn es nicht klar ist, hat das 40 Leerzeichen ergeben.
Beispiel 2 – Verkettung mit Leerzeichen
Dieses Beispiel demonstriert den Effekt vielleicht etwas besser.
SELECT 'Keep' + SPACE(10) + 'away!' AS Result;
Ergebnis:
+---------------------+ | Result | |---------------------| | Keep away! | +---------------------+
Beispiel 3 – Negativer ganzzahliger Wert
Das Argument muss ein positiver Wert sein. Wenn es sich um einen negativen Wert handelt, ist das Ergebnis NULL
:
SELECT SPACE(-10) AS Result;
Ergebnis:
+----------+ | Result | |----------| | NULL | +----------+
Beispiel 4 – Ein Datenbankbeispiel
Hier ist ein einfaches Beispiel für die Verwendung von SPACE()
Leerzeichen zwischen zwei Datenbankspalten einzufügen, wenn sie von einer Datenbank zurückgegeben werden:
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';
Ergebnis:
+-------------------------------------------+ | 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 | +-------------------------------------------+
Was ist mit 1 oder 2 Leerzeichen?
Dies ist eine großartige Funktion, um viele Leerzeichen hinzuzufügen, aber sie kann auch die Lesbarkeit des Codes verbessern, wenn eine kleine Anzahl von Leerzeichen eingefügt wird – insbesondere, wenn der Code viele Instanzen enthält, in denen Leerzeichen hinzugefügt werden.
Bei Verwendung von SPACE()
Sie können sofort sehen, wie viele Leerzeichen vorhanden sind, ohne sie zählen zu müssen.
Sehen Sie zum Beispiel nach, ob Sie sagen können, wie viele Leerzeichen im Folgenden sind:
SELECT 'Keep' + ' ' + 'away!';
Ihre erste Reaktion könnte eine schnelle Vermutung sein (z. B. „2 oder 3“), bevor Sie etwas genauer hinschauen, um es zu überprüfen. Um 100 % sicher zu sein, müssten Sie wahrscheinlich mit dem Cursor über das Leerzeichen fahren, um die Anzahl der Leerzeichen zu zählen.
Sehen Sie sich nun den folgenden Code an:
SELECT 'Keep' + SPACE(2) + 'away!';
Keine Notwendigkeit zu raten. Sie können 2
sehen direkt in den Code geschrieben.
Allerdings könnte der Wert auch in einer Variablen stehen, sodass Ihr Code eher so aussehen könnte:
SELECT 'Keep' + SPACE(@space_size) + 'away!';
Was offensichtlich keinen Hinweis darauf gibt, wie viele Leerzeichen es gibt (ohne es nachschlagen zu müssen). Wenn Sie jedoch bereits den Wert von @space_size
kennen Sie können loslegen.
Beispiel 5 – Variable Raumgröße
Hier ist ein Beispiel, das den vorherigen Punkt demonstriert.
Hier wird die Anzahl der Leerzeichen innerhalb einer Variablen definiert. In diesem Fall ist der Wert der Variablen leicht zu erkennen, da er in der Zeile unmittelbar vor dem SPACE()
definiert ist Funktion (offensichtlich wird dies nicht immer der Fall sein):
DECLARE @space_size int SET @space_size = 2 SELECT 'Keep' + SPACE(@space_size) + 'away!' AS Result GO
Ergebnis:
+-------------+ | Result | |-------------| | Keep away! | +-------------+
Unicode oder mehr als 8000 Leerzeichen?
Microsoft gibt an, dass Sie REPLICATE
verwenden sollten, um Leerzeichen in Unicode-Daten einzuschließen oder mehr als 8000 Zeichen zurückzugeben statt SPACE
.