Dela via


LEN (Transact-SQL)

gäller för:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System (PDW)SQL-analysslutpunkt i Microsoft FabricWarehouse i Microsoft Fabric

Returnerar antalet tecken i det angivna stränguttrycket, exklusive avslutande blanksteg.

Anmärkning

Om du vill returnera antalet byte som används för att representera ett uttryck använder du funktionen DATALENGTH .

Transact-SQL syntaxkonventioner

Syntax

LEN ( string_expression )

Argumentpunkter

string_expression

Stränguttrycket som ska utvärderas. string_expression kan vara en konstant, variabel eller kolumn med antingen tecken eller binära data.

Returtyper

bigint om uttrycket är av datatyperna varchar(max), nvarchar(max) eller varbinary(max). annars , int.

Om du använder SC-sortering räknar det returnerade heltalsvärdet UTF-16 surrogatpar som ett enda tecken. För mer information, se Sortering och Unicode-stöd.

Anmärkningar

LEN exkluderar avslutande blanksteg. Om det är ett problem bör du överväga att använda funktionen DATALENGTH , som inte trimmar strängen. Om du bearbetar en unicode-sträng DATALENGTH returnerar ett tal som kanske inte är lika med antalet tecken. I följande exempel visas LEN och DATALENGTH med ett avslutande blanksteg.

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

Anmärkning

Använd LEN för att returnera antalet tecken som kodas till ett visst stränguttryck och DATALENGTH för att returnera storleken i byte för ett givet stränguttryck. Dessa utdata kan variera beroende på vilken datatyp och typ av kodning som används i kolumnen. Mer information om lagringsskillnader mellan olika kodningstyper finns i Sortering och Unicode-stöd.

Exempel

I följande exempel väljs antalet tecken och data i FirstName för personer som finns i Australia. I det här exemplet används databasen AdventureWorks.

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

Exempel: Azure Synapse Analytics and Analytics Platform System (PDW)

I följande exempel returneras antalet tecken i kolumnen FirstName och förnamnet (FirstName) och familjenamnet (LastName) för anställda i 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';

Här är resultatet.

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