sql >> Databáze >  >> RDS >> Database

Jak odstranit úvodní a/nebo koncové mezery řetězce v T-SQL

Problém:

Chcete odstranit mezery nebo konkrétní znaky ze začátku a konce řetězce.

Příklad:

Naše databáze obsahuje tabulku s názvem company s údaji ve dvou sloupcích:id a name .

id jméno
1 ' Super Market '
2 'Zelený obchod'
3 'Moderní knihkupectví'

Upravme název každé společnosti, abychom odstranili zbytečné místo na začátku a konci.

Řešení:

Použijeme TRIM funkce. Zde je dotaz, který byste napsali:

SELECT TRIM(' ' FROM name) AS new_name
FROM company;

Případně můžete použít kratší verzi bez FROM klíčové slovo a mezera jako znaky k odstranění; ve výchozím nastavení TRIM bude to považovat za odstranění mezer z řetězce uloženého v daném sloupci nebo výrazu v argumentu funkce TRIM.

SELECT TRIM(name) AS new_name
FROM company;

Zde je výsledek obou dotazů:

new_name
'Super trh'
'Zelený obchod'
'Moderní knihkupectví'

Diskuse:

Použijte TRIM Pokud chcete oříznout řetězec v tabulce. Tato funkce umožňuje odstranit určitý znak ze začátku a konce řetězce. Tato funkce má následující argumenty:

  • Znak, který chcete z řetězce oříznout, ve výchozím nastavení je to mezera..
  • FROM klíčové slovo a za ním název sloupce řetězce, který má být oříznut.

V našem příkladu to vypadá takto:

TRIM(' ' FROM name)

T-SQL umožňuje také odstranit mezeru jiných znaků pouze ze začátku nebo pouze z konce řetězce.

Níže uvedený příklad odstraňuje mezeru na konci každé společnosti pomocí funkce RTRIM().

SELECT RTRIM(name) AS new_name
FROM company;
new_name
'Super trh'
'Zelený obchod'
'Moderní knihkupectví'

Ale stejně dobře by se dal použít k oříznutí místa na začátku, pokud použijete LTRIM funkce místo toho:

SELECT LTRIM(name) AS new_name
FROM company;

Dotaz vrátí name sloupec bez mezery na konci. Všimněte si, že mezery na začátku zůstávají nedotčené.

new_name
'Super Market'
'Zelený obchod'
'Moderní knihkupectví'

  1. SQL Vnitřní spojení na vybraných příkazech

  2. Jak mohu zkrátit datum a čas na serveru SQL Server?

  3. Naformátujte číslo jako procento v MySQL

  4. Jak extrahovat dvě po sobě jdoucí číslice z textového pole v MySQL?