Udostępnij za pośrednictwem


LEN (Transact-SQL)

Dotyczy:programu SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System (PDW)punkt końcowy analizy SQL w usłudze Microsoft FabricMagazyn w usłudze Microsoft Fabric

Zwraca liczbę znaków określonego wyrażenia ciągu z wyłączeniem spacji końcowych.

Uwaga / Notatka

Aby zwrócić liczbę bajtów używanych do reprezentowania wyrażenia, użyj funkcji DATALENGTH .

Transact-SQL konwencje składni

Składnia

LEN ( string_expression )  

Argumenty (w programowaniu)

string_expression
Czy wyrażenie ciągu ma być obliczane. string_expression może być stałą, zmienną lub kolumną danych binarnych albo znaków.

Typy zwracane

bigint, jeśli wyrażenie jest typu danych varchar(max),nvarchar(max) lub varbinary(max). w przeciwnym razie, int.

Jeśli używasz sortowania sc, zwracana wartość całkowita zlicza pary zastępcze UTF-16 jako pojedynczy znak. Aby uzyskać więcej informacji, zobacz Sortowanie i obsługa Unicode.

Uwagi

Funkcja LEN wyklucza spacje końcowe. Jeśli jest to problem, rozważ użycie funkcji DATALENGTH (Transact-SQL), która nie przycina ciągu. W przypadku przetwarzania ciągu Unicode funkcja DATALENGTH zwróci liczbę, która może nie być równa liczbie znaków. W poniższym przykładzie pokazano len i DATALENGTH z spacją końcową.

  DECLARE @v1 VARCHAR(40),  
    @v2 NVARCHAR(40);  
SELECT   
@v1 = 'Test of 22 characters ',   
@v2 = 'Test of 22 characters ';  
SELECT LEN(@v1) AS [VARCHAR LEN] , DATALENGTH(@v1) AS [VARCHAR DATALENGTH];  
SELECT LEN(@v2) AS [NVARCHAR LEN], DATALENGTH(@v2) AS [NVARCHAR DATALENGTH];  

Uwaga / Notatka

Użyj funkcji LEN , aby zwrócić liczbę znaków zakodowanych w danym wyrażeniu ciągu, a funkcja DATALENGTH zwraca rozmiar w bajtach dla danego wyrażenia ciągu. Te dane wyjściowe mogą się różnić w zależności od typu danych i typu kodowania używanego w kolumnie. Aby uzyskać więcej informacji na temat różnic w magazynie między różnymi typami kodowania, zobacz Obsługa sortowania i Unicode.

Przykłady

Poniższy przykład wybiera liczbę znaków i dane w FirstName pliku dla osób znajdujących się w Australialokalizacji . W tym przykładzie użyto bazy danych AdventureWorks.

SELECT LEN(FirstName) AS Length, FirstName, LastName   
FROM Sales.vIndividualCustomer  
WHERE CountryRegionName = 'Australia';  
GO  

Przykłady: Azure Synapse Analytics and Analytics Platform System (PDW)

Poniższy przykład zwraca liczbę znaków w kolumnie FirstName oraz imię i nazwisko pracowników znajdujących się w Australialokalizacji .

USE AdventureWorks2022  
GO  
SELECT DISTINCT LEN(FirstName) AS FNameLength, FirstName, LastName   
FROM dbo.DimEmployee AS e  
INNER JOIN dbo.DimGeography AS g   
    ON e.SalesTerritoryKey = g.SalesTerritoryKey   
WHERE EnglishCountryRegionName = 'Australia';  

Oto zestaw wyników.

FNameLength  FirstName  LastName  
-----------  ---------  ---------------  
4            Lynn       Tsoflias

Zobacz też

DATALENGTH (Transact-SQL)
CHARINDEX (Transact-SQL)
PATINDEX (Transact-SQL)
LEWY (Transact-SQL)
PRAWY (Transact-SQL)
typy danych (Transact-SQL)
funkcje ciągów (Transact-SQL)