W tym artykule omówimy nową funkcję SQL TRIM w SQL Server 2017 i nowsze, a także dostarczanie pewnych informacji na temat funkcji ciągów, które poprzedzają go, takich jak LTRIM I RTRIM.
Deweloperzy SQL zwykle napotykają problemy ze spacjami na początku i / lub końcu ciągu znaków. Może być konieczne przycięcie wiodących i końcowych znaków z ciągu znaków. Być może będziemy musieli wykonać operacje na ciągach również za pomocą funkcji SQL. Załóżmy, że chcemy usunąć spacje z końcowego końca ciągu, musielibyśmy używać funkcji SQL LTRIM i RTRIM do SQL Server 2016.
W SQL Server 2017 otrzymujemy nową wbudowaną funkcję przycinaj zarówno wiodące, jak i końcowe znaki razem za pomocą jednej funkcji. Funkcja SQL TRIM zapewnia dodatkową funkcjonalność usuwania znaków z określonego ciągu. Nadal możemy używać funkcji RTRIM i LTRIM również z SQL Server 2017. Zbadajmy te funkcje z przykładami.
Funkcja SQL LTRIM
Usuwa znaki z początku (zaczynając od lewej strony) określonego ciągu. W poniższym zapytaniu mamy spację przed i po ciągu. Musimy usunąć spację z lewej strony ciągu za pomocą funkcji LTRIM.
Używamy funkcji SQL DATALENGTH () do obliczenia długości danych w bajtach przed i po użyciu funkcji SQL LTRIM.
- Rozmiar ciągu danych w bajtach dla oryginalnego ciągu: 24
- Rozmiar ciągu danych w bajtach po SQL LTRIM: 18
Funkcja SQL RTRIM
Usuwa znaki z końca ((zaczynając od prawej strony) określonego ciągu. Wykonajmy następujące zapytanie, aby zobaczyć efekt działania funkcji SQL RTRIM.
- Rozmiar ciągu danych w bajtach dla oryginalnego ciągu: 24
- Rozmiar ciągu danych w bajtach po RTRIM SQL: 16
Funkcja TRIM w SQL Server 2017
Przed SQL Server 2017, jeśli musimy usunąć zarówno przestrzenie wiodące, jak i szkoleniowe, musimy użyć zarówno funkcji LTRIM, jak i RTRIM. W poniższym zapytaniu , użyliśmy funkcji LTRIM i RTIM ze zmienną łańcuchową.
Na poniższym zrzucie ekranu widzimy, że usuwa zarówno początkowe, jak i tra iling przestrzeni ze sznurka.
- Rozmiar ciągu danych w bajtach dla oryginalnego ciągu: 24
- Rozmiar ciągu danych w bajtach po SQL LTRIM: 11
- Rozmiar ciągu danych w bajtach dla oryginalnego ciągu: 25
- Rozmiar ciągu danych w bajtach po SQL LTRIM i RTRIM: 11
Musimy użyć dwóch funkcji, aby usunąć spacje z ciągu. Możemy użyć pojedynczego wystąpienia funkcji TRIM w SQL Server 2017 i nowszych, aby przyciąć zarówno znaki początkowe, jak i końcowe, przyjrzyjmy się funkcji TRIM w dalszej części tego artykułu.
Składnia funkcji TRIM
1
|
TRIM (ciąg)
|
- TrimCharacter: Możemy określić znak do usunięcia z ciągu. Domyślnie SQL Server usuwa spacje z obu stron ciągu
- Ciąg: musimy określić ciąg, który chcemy przyciąć
Zbadajmy funkcję SQL TRIM z przykłady.
TRIM Przestrzenie wiodące i treningowe:
Domyślnie funkcja Trim usuwa spację z obu stron łańcucha. W poniższym zapytaniu musimy zdefiniować ciąg znaków ze spacjami po obu stronach ciągu.
Wykonaj to zapytanie:
Nie określiliśmy żadnych znaków do usunięcia w funkcji TRIM. Na wyjściu funkcja SQL TRIM usuwa zarówno początkową, jak i końcową spację.
Możesz również zauważyć różnicę w długości łańcucha przed i po funkcji TRIM.
- Rozmiar ciągu danych w bajtach dla oryginalnego ciągu: 24
- Rozmiar ciągu danych w bajtach po SQL TRIM: 11
TRIM Znaki wiodące z ciągu:
W poprzednim przykładzie zbadaliśmy, że SQL TRIM zastępuje RTRIM i LTRIM i to eliminuje, aby usunąć wszystkie znaki spacji przed i po ciągu. Możemy również usunąć znaki z ciągu za pomocą TRIM. Załóżmy, że chcemy usunąć znak ON z ciągu, możemy go określić w funkcji TRIM zgodnie z poniższym skryptem.
Sprawdza określone znaki zarówno na początku, jak i na końcu łańcucha i usuwa określone znaki. W ciągu Application mamy znak ON na początku. Na poniższym zrzucie ekranu możesz spojrzeć na dane wyjściowe po funkcji TRIM.
- Rozmiar ciągu danych w bajtach dla oryginalnego ciągu: 11
- Rozmiar ciągu danych w bajtach po SQL TRIM: 9
Spójrzmy na jeszcze jeden przykład. Tym razem chcemy usunąć znaki App z wiodącej strony. Nie musimy dokonywać żadnych zmian w skrypcie. Możemy określić znak do usunięcia za pomocą SQL TRIM i daje to wymagane wyjście.
- Rozmiar ciągu danych w bajtach dla oryginalnego ciągu: 11
- Rozmiar ciągu danych w bajtach po SQL TRIM: 8
W poprzednich przykładach usunęliśmy znak z początku lub końca . Jeśli mamy znak po obu stronach, usuwa je również.
W poniższym przykładzie chcemy usunąć znak A znajdujący się po obu stronach łańcucha. Wykonaj skrypt i usunie określone znaki z obu stron.
- Rozmiar ciągu danych w bajtach dla oryginału Ciąg: 12
- Rozmiar ciągu danych w bajtach po SQL TRIM: 10
Załóżmy, że określiliśmy znak, którego nie ma w ciągu. W poniższym przykładzie chcemy usunąć znaki A i C z wiodącego lub końcowego końca. Nie mamy znaku C po obu stronach, więc go nie usuwa. Usuwa tylko znak A i daje wynik.
- Rozmiar ciągu danych w bajtach dla oryginalnego ciągu: 12
- Rozmiar ciągu danych w bajtach po SQL TRIM: 10
TRIM dla rekordów w tabeli
W poprzednim artykule użyliśmy zmiennej do zdefiniowania łańcucha i wykonania na nim operacji SQL TRIM. Zwykle wymagamy użycia TRIM na rekordach tabeli. Użyjmy go w poniższym przykładzie.
W poniższych przykładach wyeliminowano znak R z ciągu na początku i na końcu.
Możemy również użyć funkcji SQL TRIM w instrukcji Update. Załóżmy, że chcemy zaktualizować wszystkie rekordy w tabeli Employee i chcemy wyeliminować znaki Manager z JobTitile.
Nie traktuje Menedżera jako jednego słowa. Funkcja przycinania sprawdza każdy znak w ciągu i eliminuje go.
Możemy użyć przecinka (,) do oddzielenia każdego znaku również.
Wykonuje tę samą pracę i usuwa określone znaki z ciągu na początku i na końcu.
Podsumowanie
W tym artykule omówiliśmy funkcję SQL TRIM w SQL Server 2017 i nowszych wersjach. Dowiedzieliśmy się również o funkcjach TRIM LTRIM i RTRIM dostępnych w SQL Server 2016 lub wcześniejszych.
W zależności od używanej wersji SQL Server, powinieneś zrozumieć te funkcje i zapoznać się z pojęciami. Mam nadzieję, że ten artykuł okaże się przydatny. Zachęcamy do wyrażania opinii lub zadawania pytań w komentarzach poniżej.
- Autor
- Najnowsze posty
Jest twórcą jednej z największych bezpłatnych kolekcji artykułów online na jeden temat, obejmującej 50-częściową serię na temat grup dostępności SQL Server Always On. Dzięki swojemu wkładowi w społeczność SQL Server, został wyróżniony różnymi nagrodami, w tym prestiżową nagrodą „Najlepszy autor roku” nieprzerwanie w 2020 i 2021 roku w SQLShack.
Raj jest zawsze zainteresowany nowymi wyzwaniami, więc jeśli potrzebujesz konsultacji pomoc na każdy temat poruszony w jego pismach, można się z nim skontaktować pod adresem [email protected]
Wyświetl wszystkie posty Rajendry Gupty
- Wykonywanie drobnych i głównych aktualizacji wersji AWS RDS SQL Server – 29 stycznia 2021
- Wdrażanie wystąpień AWS RDS PostgreSQL – 27 stycznia 2021
- Migracja lokalnych baz danych SQL do AWS RDS SQL Server przy użyciu AWS DMS – 25 stycznia , 2021 r.