sql >> Databáze >  >> RDS >> Sqlserver

3 způsoby, jak vrátit řetězec více mezer na serveru SQL

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


  1. Jak přidat řetězec k hodnotě sloupce v MySQL?

  2. Základy cizích klíčů v MySQL?

  3. Uložit obrázek do databáze blob; načíst z db do Pictureboxu

  4. Užitečné dotazy na vypršení platnosti hesla/zásady/nastavení oracle EBS