Serwisanci dostępni teraz · czynne całą dobę, także w weekendy i świętaWarszawa i okolice · dojazd bezpłatny
Darmowa diagnoza laptopa
Darmowa diagnoza laptopa
Dojazd do klienta bezpłatnie
Dojazd do klienta bezpłatnie
Laptopy zastępcze bezpłatnie
Laptopy zastępcze bezpłatnie
Odbiór i zwrot sprzętu bezpłatnie
Odbiór i zwrot sprzętu bezpłatnie

Funkcja LEN

Termin Definicja
Funkcja LEN

Funkcja LEN zwraca liczbę znaków zawartych w podanym ciągu tekstowym.

Czym jest funkcja LEN

LEN to funkcja skalarna Transact-SQL zwracająca liczbę znaków w podanym wyrażeniu tekstowym. Jej najważniejsza cecha, zaskakująca wiele osób, to pomijanie końcowych spacji. LEN z ciągu złożonego ze słowa i trzech spacji na końcu zwróci długość samego słowa. Spacje wiodące są natomiast liczone. Jeżeli potrzebna jest długość w bajtach, a nie w znakach, służy do tego DATALENGTH, która dla typu nvarchar zwróci wartość dwukrotnie większą, bo każdy znak zajmuje tam dwa bajty. Dla typu varchar obie funkcje zwykle dają ten sam wynik, chyba że w grę wchodzi sortowanie z obsługą znaków spoza podstawowego zestawu.

Podobne funkcje w innych środowiskach

Nazwa LEN bywa mylona z funkcjami z innych systemów. W standardzie SQL i w PostgreSQL, MySQL czy Oracle odpowiednikiem jest LENGTH, przy czym implementacje różnią się właśnie traktowaniem spacji: Oracle nie obcina końcowych spacji dla typu VARCHAR2, a MySQL liczy bajty w funkcji LENGTH i znaki dopiero w CHAR_LENGTH. W Excelu funkcja o nazwie DŁ, w wersji angielskiej LEN, liczy wszystkie znaki razem z końcowymi spacjami, co przy przenoszeniu logiki między arkuszem a bazą prowadzi do rozbieżności wyników.

Gdzie LEN wprowadza w błąd

Pierwszy klasyczny problem to walidacja danych. Sprawdzenie, czy numer NIP ma dziesięć znaków, nie wykryje wartości z końcowymi spacjami, bo LEN je zignoruje, ale porównanie równości już zawiedzie, jeżeli kolumna jest typu varchar. Odwrotnie, kolumna typu char o stałej długości jest uzupełniana spacjami automatycznie, więc LEN pokaże długość samej treści, a DATALENGTH pełny rozmiar pola. Drugi to znaki niewidoczne. Dane importowane z plików CSV i ze stron internetowych zawierają twarde spacje, znaki tabulacji, znaki końca wiersza oraz znacznik kolejności bajtów na początku pliku, które LEN policzy jako pełnoprawne znaki, przez co numer rachunku o poprawnej treści okaże się o jeden dłuższy. Trzeci dotyczy emoji i znaków spoza podstawowej płaszczyzny, zapisywanych jako para jednostek kodowych, które przy sortowaniu bez obsługi par zastępczych liczone są jako dwa znaki. Czwarty to wydajność: użycie LEN na kolumnie w warunku WHERE uniemożliwia skorzystanie z indeksu i zmusza silnik do przejrzenia całej tabeli.

Kiedy warto zadzwonić po serwis

Nieoczekiwane wyniki na danych z importu bardzo często zaczynają się poza bazą: od pliku eksportu z uszkodzonym kodowaniem, od arkusza otwartego w złych ustawieniach regionalnych albo od dysku, który zapisał plik z błędami. Warszawskie Pogotowie Komputerowe pomaga firmom z Warszawy uporządkować taką sytuację, naprawiając kodowanie eksportów, odzyskując dane z uszkodzonych nośników, testując pamięć i dyski w komputerach oraz konfigurując automatyczne kopie zapasowe baz. Dojazd i wstępna diagnoza są bezpłatne.

+48 22 100 48 29Zadzwoń teraz · serwisant w 1 godzinę