Freigeben über


LEN (Transact-SQL)

Gilt für:SQL ServerAzure SQL-DatenbankVerwaltete Azure SQL-InstanzAzure Synapse AnalyticsAnalytics Platform System (PDW)SQL-Analyseendpunkt in Microsoft FabricLagerhaus in Microsoft FabricSQL-Datenbank in Microsoft Fabric

Gibt die Anzahl von Zeichen im angegebenen Zeichenfolgenausdruck zurück, wobei nachstehende Leerzeichen ausgeschlossen werden.

Hinweis

Verwenden Sie die DATALENGTH-Funktion, um die Anzahl von Bytes zurückzugeben, die zur Darstellung eines Ausdrucks verwendet werden.

Transact-SQL-Syntaxkonventionen

Syntax

LEN ( string_expression )

Argumente

string_expression

Der auszuwertende Zeichenfolgenausdruck . string_expression kann eine Konstante, Variable oder Spalte mit Zeichen- oder Binärdaten darstellen.

Rückgabetypen

bigint , wenn der Ausdruck der Datentypen varchar(max), nvarchar(max) oder varbinary(max) ist; andernfalls int.

Wenn Sie SC-Sortierungen verwenden, zählt der zurückgegebene ganzzahlige Wert UTF-16-Ersatzpaare als einzelnes Zeichen. Weitere Informationen finden Sie unter Sortierungs- und Unicode-Support.

Bemerkungen

LEN schließt nachfolgende Leerzeichen aus. Wenn dies ein Problem ist, sollten Sie die DATALENGTH-Funktion verwenden, wodurch die Zeichenfolge nicht gekürzt wird. Wenn Sie eine Unicode-Zeichenfolge verarbeiten, wird eine Zahl zurückgegeben, DATALENGTH die möglicherweise nicht der Anzahl von Zeichen entspricht. Das folgende Beispiel veranschaulicht LEN und DATALENGTH mit einem nachgestellten Leerzeichen.

DECLARE @v1 AS VARCHAR (40), @v2 AS 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];

Hinweis

Wird verwendet LEN , um die Anzahl von Zeichen zurückzugeben, die in einem bestimmten Zeichenfolgenausdruck codiert sind, und DATALENGTH , um die Größe in Byte für einen bestimmten Zeichenfolgenausdruck zurückzugeben. Diese Ausgaben können je nach Datentyp und Typ der in der Spalte verwendeten Codierung variieren. Weitere Informationen zu Speicherunterschieden zwischen verschiedenen Codierungstypen finden Sie unter Sortierung und Unicode-Unterstützung.

Beispiele

Das folgende Beispiel wählt die Anzahl von Zeichen und die Daten in FirstName für Personen in Australia aus. In diesem Beispiel wird die AdventureWorks-Datenbank verwendet.

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

Beispiele: Azure Synapse Analytics und Analytics-Plattformsystem (PDW)

Das folgende Beispiel gibt die Anzahl der Zeichen in der Spalte FirstName und den Vornamen (FirstName) und den Familiennamen (LastName) von Mitarbeitern zurück, die sich befinden Australia.

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';

Hier sehen Sie das Ergebnis.

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