Problém:
Chtěli byste odstranit mezery nebo konkrétní znaky ze začátku a konce řetězce v SQLite.
Příklad:
Naše databáze obsahuje tabulku s názvem category s údaji ve dvou sloupcích:id a name .
| id | jméno |
|---|---|
| 1 | ' sladkosti ' |
| 2 | 'maso' |
| 3 | ' zelenina' |
Pojďme oříznout název každé kategorie produktů, 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(' ', name) AS new_name
FROM category;
Všimněte si, že znak k odstranění je volitelný; stačí zadat název sloupce, pokud chcete odstranit znak mezery:
SELECT TRIM(name) AS new_name FROM category;
Zde je výsledek obou dotazů:
| new_name |
|---|
| 'sladkosti' |
| 'maso' |
| 'vegetables' |
Diskuse:
Použijte TRIM funkce v databázi SQLite, pokud chcete oříznout řetězec v tabulce. Tato funkce umožňuje odstranit určitý znak ze začátku a/nebo konce řetězce. Vyžaduje následující argumenty:
- Znak, který chcete z řetězce oříznout, což je ve výchozím nastavení mezera.
- Název sloupce řetězce, který má být oříznut.
V našem příkladu to vypadá takto:
TRIM(' ' , name)
SQLite nám také umožňuje odstranit mezeru nebo jiné znaky pouze ze začátku nebo konce řetězce.
Níže uvedený příklad odstraňuje mezeru z konce každého názvu kategorie pomocí RTRIM() funkce:
SELECT RTRIM(name) AS new_name FROM company;
| new_name |
|---|
| 'sladkosti' |
| 'maso' |
| ' zelenina' |
Jako TRIM() , RTRIM() funkce má dva argumenty:znaky, které mají být odstraněny, a řetězec, který má být oříznut. Opět stačí zadat název sloupce, pokud je znakem k oříznutí mezera.
Pokud chcete odstranit znaky ze začátku řetězce, ale ne z konce, použijte LTRIM() funkce:
SELECT LTRIM(name) AS new_name FROM company;
Tuto funkci samozřejmě můžete použít se dvěma argumenty:znaky, které se mají odstranit, a řetězec, který se má oříznout.
Výše uvedený dotaz vrátí sloupec názvu bez mezery na začátku:
| new_name |
|---|
| 'sladkosti' |
| 'maso' |
| 'vegetables' |