SQL Server 2016 lub starszy wersje nie mają prostej funkcji manipulowania ciągiem znaków w celu przycinania zarówno początkowych, jak i końcowych niepożądanych spacji. Istnieją obejścia umożliwiające użycie LTRIM do usunięcia wiodącej spacji i RTRIM do oddzielnego usunięcia spacji końcowej. Dobrą wiadomością jest to, że wbudowana funkcja TRIM została wprowadzona w wersji SQL Server 2017 wraz z innymi funkcjami tekstowymi, takimi jak translate () i concat_ws (). Ta nowa funkcja usunie spacje po obu stronach ciągu w jednej operacji i sprawi, że kod będzie czysty.
TRIM () w SQL Server 2017 i nowszych
Funkcja TRIM () to wprowadzone w SQL Server 2017. We wszystkich poprzednich wersjach mamy tylko LTRIM () do usuwania wiodących spacji z ciągu i RTRIM () do usuwania spacji końcowych. Nowo wprowadzona funkcja może być użyta do usunięcia niechcianych spacji wiodących i końcowych z ciągu za jednym razem. Może być również używany do usuwania znaków innych niż spacja z początku i końca ciągu.
Korzystanie z wbudowanej funkcji TRIM
Składnia trim to TRIM (ciąg) . Jeśli po prostu napisałeś bez użycia znaków FROM, to obcina spacje po obu stronach ciągu. Jeśli użyjesz „znaków” FROM, to będzie wyglądać na określone znaki na początku i na końcu ciągu i usunie je.
Przykład Do przycinania samej spacji
SELECT TRIM(" My Tec Bits ")/* Result */"My Tec Bits"
Przykład przycinania znaków
SELECT TRIM( ".! " FROM "@ My Tec Bits !..") AS Result;/* Result */"@ My Tec Bits"
Odpowiednik TRIM w SQL Server 2016 do 2005
W SQL Server 2016 i niższych wersjach, jeśli spróbujesz użyć funkcji TRIM, pojawi się błąd z informacją, że „TRIM” nie jest rozpoznawalną nazwą funkcji wbudowanej. Tak więc w starszych wersjach SQL Server odpowiednikiem funkcji wbudowanej jest używanie LTRIM i RTRIM razem, jak LTRIM (RTRIM („String”)). Jeśli uważasz, że ta technika sprawia, że kod wygląda brzydko, możesz umieścić tę metodę w UDF i użyć jej w następujący sposób:
TRIM Equivalent w SQL Server 2000
W wersji 2000 programu SQL Server można również używać razem LTRIM i RTRIM, aby uzyskać funkcje przycinania po obu stronach. Jeśli jesteś skłonny utworzyć UDF, to istnieje niewielka zmiana w stosunku do utworzonego wcześniej UDF. SQL Server 2000 nie ma typu danych Varchar (Max). Więc zamiast tego musimy użyć typu danych Varchar (8000). UDF będzie wyglądał tak: