sql >> Databasteknik >  >> RDS >> Sqlserver

3 sätt att returnera en sträng med flera utrymmen i SQL Server

När du arbetar med databaser och tillhörande data behöver du ibland infoga ett mellanslag när du sammanfogar två strängar, eller ibland behöver du ersätta ett tecken med ett mellanslag.

Och då behöver du ibland infoga flera mellanslag. Här är tre sätt att returnera en sträng med flera mellanslag i SQL Server med T-SQL.

Alternativ 1:Skriv ut alla blanksteg

Det mest uppenbara sättet är att helt enkelt skriva ut varje utrymme du behöver. Så här:

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

Resultat:

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

I det här exemplet lägger jag till 12 mellanslag mellan två andra strängar. Denna metod är vanligtvis perfekt när du bara behöver infoga ett eller två mellanslag. Men när du väl behöver lägga till ett dussin eller fler, kan det vara lättare att använda SPACE() funktion.

Alternativ 2:SPACE()-funktionen

SPACE() funktion byggdes speciellt för detta ändamål – att returnera en rad upprepade mellanslag. Skriv helt enkelt funktionen och ange ett argument som anger hur många blanksteg som krävs.

Så vi kan konvertera det föregående exemplet till detta:

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

Resultat:

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

Alternativ 3:Funktionen REPLICATE()

Om du behöver infoga ett stort antal mellanslag (8000 eller fler), bör du använda REPLICATE() fungera. Denna funktion replikerar faktiskt vilket tecken som helst – inte bara mellanslag.

Så vi kan ändra de tidigare exemplen till följande:

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

Resultat:

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

Du kan också använda CHAR() funktion för att uttryckligen ange vilket tecken som ska användas. Till exempel, CHAR(32) för ett mellanslag eller CHAR(160) för ett oavbrutet utrymme:

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

Resultat:

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

Ersätta ett mellanslag med flera mellanslag

Så vi kan använda någon av ovanstående metoder inom en REPLACE() funktion för att ersätta ett enda mellanslag med flera mellanslag.

Här är ett exempel som använder SPACE() funktion:

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

Resultat:

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


  1. Hanterar datum och tid istället för datetime

  2. 3 sätt att räkna antalet systemtabeller i en SQL Server-databas

  3. Hur man filtrerar SQL resulterar i en har-många-genom-relation

  4. Kontrollera om sekvensen finns i Postgres (plpgsql)