Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

3 Möglichkeiten, eine Zeichenfolge mit mehreren Leerzeichen in SQL Server zurückzugeben

Bei der Arbeit mit Datenbanken und den zugehörigen Daten müssen Sie manchmal ein Leerzeichen einfügen, wenn Sie zwei Zeichenketten miteinander verbinden, oder manchmal müssen Sie ein Zeichen durch ein Leerzeichen ersetzen.

Und dann müssen Sie manchmal mehrere Leerzeichen einfügen. Hier sind 3 Möglichkeiten, eine Zeichenfolge mit mehreren Leerzeichen in SQL Server mit T-SQL zurückzugeben.

Option 1:Geben Sie alle Leerzeichen aus

Der naheliegendste Weg ist, einfach jedes benötigte Leerzeichen einzutippen. So:

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

Ergebnis:

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

In diesem Beispiel füge ich 12 Leerzeichen zwischen zwei anderen Zeichenfolgen hinzu. Diese Methode ist normalerweise perfekt, wenn Sie nur ein oder zwei Leerzeichen einfügen müssen. Aber sobald Sie, sagen wir, ein Dutzend oder mehr hinzufügen müssen, kann es einfacher sein, das SPACE() zu verwenden Funktion.

Option 2:Die SPACE()-Funktion

Das SPACE() Die Funktion wurde speziell für diesen Zweck entwickelt – um eine Folge wiederholter Leerzeichen zurückzugeben. Geben Sie einfach die Funktion ein und geben Sie ein Argument an, das angibt, wie viele Leerzeichen erforderlich sind.

So können wir das vorherige Beispiel in dieses umwandeln:

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

Ergebnis:

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

Option 3:Die REPLICATE()-Funktion

Wenn Sie sehr viele Leerzeichen (8000 oder mehr) einfügen müssen, sollten Sie REPLICATE() verwenden Funktion. Diese Funktion repliziert tatsächlich jedes Zeichen – nicht nur Leerzeichen.

Wir können also die vorherigen Beispiele wie folgt ändern:

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

Ergebnis:

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

Sie können auch CHAR() verwenden Funktion, um das zu verwendende Zeichen explizit anzugeben. Beispiel:CHAR(32) für ein Leerzeichen oder CHAR(160) für ein geschütztes Leerzeichen:

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

Ergebnis:

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

Ein Leerzeichen durch mehrere Leerzeichen ersetzen

Wir könnten also jede der oben genannten Methoden innerhalb eines REPLACE() verwenden Funktion zum Ersetzen eines einzelnen Leerzeichens durch mehrere Leerzeichen.

Hier ist ein Beispiel mit SPACE() Funktion:

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

Ergebnis:

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