baza danych.Przewodnik

w środowiskach SQL Server dwie z wielu funkcji ciągów sąLEFT() I SUBSTRING().

funkcje te działają podobnie, ale są różnice. W tym artykule omówiono niektóre z głównych różnic między tymi funkcjami.

definicja

najpierw przyjrzyjmy się, co robi każda funkcja:

LEFT() zwraca lewą część łańcucha znaków z określoną liczbą znaków., SUBSTRING() Zwraca część wyrażenia znakowego, binarnego, tekstowego lub obrazkowego.

więcLEFT() zwraca tylko lewą część łańcucha.

SUBSTRING() po prostu zwraca część wyrażenia (nie ogranicza się tylko do lewej części – może być lewa, prawa lub gdzieś pośrodku).

przykład 1 – ten sam wynik

obie funkcje mogą być użyte do zwrócenia określonej liczby znaków z lewej strony.

SELECT LEFT("Buckethead", 6) AS , SUBSTRING("Buckethead", 1, 6) AS ;

wynik:

+--------+-------------+| LEFT | SUBSTRING ||--------+-------------|| Bucket | Bucket |+--------+-------------+

jednakLEFT() jest bardziej zwięzły., Wynika to częściowo z faktu, że w nazwie funkcji jest mniej znaków.

ale to też ze względu na składnię. Funkcja LEFT() wymaga tylko dwóch argumentów (wyrażenia i liczby znaków do powrotu), podczas gdy SUBSTRING() wymaga trzech argumentów (wyrażenia, pozycji początkowej i liczby znaków do powrotu z tej pozycji początkowej).,

przykład 2 – gdy PODŁAŃCUCH jest lepszy

SUBSTRING() jest znacznie lepszy niżLEFT() przy pobieraniu danych ze środka łańcucha. Właściwie lewa nie jest do tego zaprojektowana. Jeśli naprawdę chcesz użyć LEFT() aby to zrobić, musisz zrobić kilka sztuczek, takich jak użycie funkcji RIGHT() jako pierwszego argumentu.,

przykład:

SELECT LEFT(RIGHT("Buckethead", 7), 3) AS , SUBSTRING("Buckethead", 4, 3) AS ;

wynik:

+--------------+-------------+| LEFT/RIGHT | SUBSTRING ||--------------+-------------|| ket | ket |+--------------+-------------+

akceptowane typy danych

funkcjaLEFT() nie akceptuje typów danych tekstowych i tekstowych jako pierwszego argumentu. Obsługuje wszystkie inne typy danych, które można przekonwertować na varchar lub nvarchar.

funkcjaSUBSTRING() z drugiej strony akceptuje wyrażenia znakowe, binarne, tekstowe, ntext i obrazkowe.,

zwracane wartości

LEFT() zwraca varchar, gdy pierwszy argument jest typem danych znaków nie-Unicode, a nvarchar, gdy jest typem danych znaków Unicode.,

The return values for SUBSTRING() are as follows:

Expression (first argument) Return type
char/varchar/text varchar
nchar/nvarchar/ntext nvarchar
binary/varbinary/image varbinary

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *