Problem:
Chcesz usunąć spacje lub określone znaki z początku i końca ciągu.
Przykład:
Nasza baza danych zawiera tabelę o nazwie company z danymi w dwóch kolumnach:id i name .
| id | imię |
|---|---|
| 1 | ' Supermarket ' |
| 2 | 'Zielony sklep' |
| 3 | 'Nowoczesna księgarnia' |
Skróćmy nazwę każdej firmy, aby usunąć niepotrzebną przestrzeń na początku i na końcu.
Rozwiązanie:
Użyjemy TRIM funkcjonować. Oto zapytanie, które możesz napisać:
SELECT TRIM(' ' FROM name) AS new_name
FROM company;
Alternatywnie możesz użyć krótszej wersji bez FROM słowo kluczowe i spacja jako znaki do usunięcia; domyślnie TRIM potraktuje to jako usunięcie spacji z ciągu zapisanego w danej kolumnie lub wyrażeniu w argumencie funkcji TRIM.
SELECT TRIM(name) AS new_name FROM company;
Oto wynik obu zapytań:
| nowa_nazwa |
|---|
| „Super market” |
| 'Zielony sklep' |
| 'Nowoczesna księgarnia' |
Dyskusja:
Użyj TRIM funkcja, jeśli chcesz przyciąć ciąg w tabeli. Ta funkcja umożliwia usunięcie określonego znaku z początku i końca ciągu. Ta funkcja przyjmuje następujące argumenty:
- Znak, który chcesz wyciąć z ciągu, domyślnie jest to spacja.
FROMsłowo kluczowe, po którym następuje nazwa kolumny ciągu do przycięcia.
W naszym przykładzie wygląda to tak:
TRIM(' ' FROM name)
T-SQL umożliwia również usuwanie spacji innych znaków tylko z początku lub tylko z końca ciągu.
Poniższy przykład usuwa spację na końcu każdej firmy za pomocą funkcji RTRIM().
SELECT RTRIM(name) AS new_name FROM company;
| nowa_nazwa |
|---|
| 'Super market' |
| 'Zielony sklep' |
| 'Nowoczesna księgarnia' |
Ale równie dobrze może być użyty do przycięcia przestrzeni na początku, jeśli użyjesz LTRIM funkcja zamiast:
SELECT LTRIM(name) AS new_name FROM company;
Zapytanie zwraca name kolumna bez spacji na końcu. Zwróć uwagę, że spacje na początku pozostają nietknięte.
| nowa_nazwa |
|---|
| 'Super market ' |
| 'Zielony sklep' |
| 'Nowoczesna księgarnia' |