W SQL Server TRIM()
funkcja jest powszechnie używana do usuwania wiodących i końcowych białych znaków z ciągu. Ale czy wiesz, że możesz również usunąć inne znaki z początku/końca ciągu? Nie musi to być spacja.
TRIM()
to funkcja T-SQL, która w szczególności usuwa znak spacji char(32)
lub inne określone znaki od początku lub końca ciągu.
Składnia
Składnia wygląda tak:
TRIM ( [ characters FROM ] string )
string
argument jest wymaganym argumentem – jest to rzeczywisty ciąg do przycięcia.
characters FROM
to opcjonalny argument to bit, który pozwala określić, które znaki powinny zostać usunięte (zakładając, że nie usuwasz tylko znaku spacji). Jeśli nie określisz, które znaki, spacja zostanie przycięta.
Przykład
Oto podstawowy przykład obcinania początkowych i końcowych znaków równości (=
) z ciągu:
SELECT TRIM('=' FROM '=SPECIALS=') AS Result;
Wynik
Result -------- SPECIALS
Wiele instancji postaci
Przycina również wiele wystąpień określonego znaku.
Przykład:
SELECT TRIM('=' FROM '===SPECIALS===') AS Result;
Wynik:
Result -------- SPECIALS
Przycinanie wielu znaków
Pozwala także przyciąć wiele znaków.
Przykład:
SELECT TRIM('!*=+?' FROM '=+=*!SPECIALS?=+=') AS Result;
Wynik:
Result -------- SPECIALS
Wbudowana biała przestrzeń
Jeśli spacja istnieje wewnątrz przyciętych znaków, nie oczekuj, że zostaną one przycięte (chyba że wyraźnie określisz również spację jako jeden ze znaków do przycięcia).
Oto, co mam na myśli:
SELECT TRIM('=' FROM '= SPECIALS =') AS Result;
Wynik:
Result -------------- SPECIALS
W tym przypadku znak równości jest przycinany, ale odstęp pozostaje. Dzieje się tak, ponieważ biała spacja nie znajduje się bezpośrednio po lewej i/lub prawej stronie ciągu.
Jeśli chcemy usunąć zarówno znak równości i spację możemy po prostu dodać spację do listy znaków do przycięcia:
SELECT TRIM('=' FROM '= SPECIALS =') AS Result;
Wynik:
Result -------- SPECIALS
Znaki otoczone białymi znakami
Podobnie jak w poprzednim przykładzie, nie można oczekiwać, że SQL Server przytnie określony znak, jeśli między nim a początkiem/końcem ciągu jest spacja.
Na przykład:
SELECT TRIM('=' FROM ' =SPECIALS= ') AS Result;
Wynik:
Result ---------------- =SPECIALS=
W tym przykładzie nic nie zostało przycięte. Dzieje się tak, ponieważ między znakami równości a początkiem/końcem ciągu znajduje się odstęp.
W takim przypadku możesz po prostu dodać znak spacji jako jeden ze znaków do przycięcia:
SELECT TRIM('=' FROM ' =SPECIALS= ') AS Result;
Wynik:
Result -------- SPECIALS
Więcej przykładów użycia TRIM()
Aby przyciąć białe znaki z lewej i prawej strony ciągu, zobacz Jak usunąć wiodące i końcowe białe znaki w SQL Server.