Při práci s databázemi a souvisejícími daty je někdy potřeba vložit mezeru při spojování dvou řetězců nebo někdy je potřeba nahradit znak mezerou.
A pak někdy potřebujete vložit více mezer. Zde jsou 3 způsoby, jak vrátit řetězec více mezer v SQL Server pomocí T-SQL.
Možnost 1:Napište všechny mezery
Nejviditelnějším způsobem je jednoduše zadat každé místo, které potřebujete. Takhle:
SELECT 'Homer' + ' ' + 'Satriani';
Výsledek:
------------------------- Homer Satriani
V tomto příkladu přidám 12 mezer mezi dva další řetězce. Tato metoda je obvykle perfektní, když potřebujete vložit pouze jednu nebo dvě mezery. Jakmile ale potřebujete přidat řekněme tucet nebo více, může být snazší použít SPACE()
funkce.
Možnost 2:Funkce SPACE()
SPACE()
funkce byla vytvořena speciálně pro tento účel – vrátit řetězec opakovaných mezer. Jednoduše zadejte funkci a zadejte argument, který určuje, kolik mezer je vyžadováno.
Takže můžeme převést předchozí příklad do tohoto:
SELECT 'Homer' + SPACE(12) + 'Satriani';
Výsledek:
------------------------- Homer Satriani
Možnost 3:Funkce REPLICATE()
Pokud potřebujete vložit opravdu velký počet mezer (8000 nebo více), měli byste použít REPLICATE()
funkce. Tato funkce ve skutečnosti replikuje jakýkoli znak – nejen mezery.
Takže můžeme změnit předchozí příklady na následující:
SELECT 'Homer' + REPLICATE(' ', 12) + 'Satriani';
Výsledek:
------------------------- Homer Satriani
Můžete také použít CHAR()
funkce pro explicitní uvedení znaku, který se má použít. Například CHAR(32)
pro mezeru nebo CHAR(160)
pro pevnou mezeru:
SELECT 'Homer' + REPLICATE(char(160), 12) + 'Satriani';
Výsledek:
------------------------- Homer Satriani
Nahrazení mezery více mezerami
Mohli bychom tedy použít kteroukoli z výše uvedených metod v rámci REPLACE()
funkce k nahrazení jedné mezery více mezerami.
Zde je příklad použití SPACE()
funkce:
SELECT REPLACE('Homer Satriani', ' ', SPACE(12));
Výsledek:
------------------------- Homer Satriani