LEN (Transact-SQL)LEN (Transact-SQL)

ОБЛАСТЬ ПРИМЕНЕНИЯ: даSQL Server даБаза данных SQL Azure даAzure Synapse Analytics (хранилище данных SQL) даParallel Data Warehouse APPLIES TO: yesSQL Server yesAzure SQL Database yesAzure Synapse Analytics (SQL DW) yesParallel Data Warehouse

Возвращает количество символов указанного строкового выражения, исключая конечные пробелы.Returns the number of characters of the specified string expression, excluding trailing spaces.

Примечание

Получить число байтов, используемых для представления выражения, можно с помощью функции DATALENGTH.To return the number of bytes used to represent an expression, use the DATALENGTH function.

Значок ссылки на раздел Синтаксические обозначения в Transact-SQLTopic link icon Transact-SQL Syntax Conventions

СинтаксисSyntax

LEN ( string_expression )  

АргументыArguments

string_expressionstring_expression
Оцениваемое строковое выражение.Is the string expression to be evaluated. Аргумент string_expression может быть константой, переменной или столбцом символьных или двоичных данных.string_expression can be a constant, variable, or column of either character or binary data.

Типы возвращаемых данныхReturn Types

bigint, если expression имеет тип данных varchar(max) , nvarchar(max) или varbinary(max) ; в противном случае int.bigint if expression is of the varchar(max), nvarchar(max) or varbinary(max) data types; otherwise, int.

Если используются параметры сортировки SC, то возвращаемое целое значение рассматривает суррогатные пары Юникода UTF-16 как один символ.If you are using SC collations, the returned integer value counts UTF-16 surrogate pairs as a single character. Дополнительные сведения см. в статье Collation and Unicode Support.For more information, see Collation and Unicode Support.

RemarksRemarks

Функция LEN исключает конечные пробелы.LEN excludes trailing spaces. Если это может создать проблемы, рекомендуется использовать функцию DATALENGTH (Transact-SQL), которая не усекает строку.If that is a problem, consider using the DATALENGTH (Transact-SQL) function which does not trim the string. При обработке строки Юникода DATALENGTH возвращает число, которое, возможно, не будет равно количеству символов.If processing a unicode string, DATALENGTH will return a number that may not be equal to the number of characters. В приведенном ниже примере демонстрируется работа функций LEN и DATALENGTH с конечным пробелом.The following example demonstrates LEN and DATALENGTH with a trailing space.

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

Примечание

При использовании LEN для возврата количества символов, закодированных для заданного выражения строки, или DATALENGTH для возврата размера в байтах для заданного строкового выражения, результаты могут отличаться в зависимости от типа данных и типа кодирования, используемого в столбце.When using LEN to return the number of characters encoded for a given string expression or DATALENGTH to return the size in bytes for a given string expression, the outputs may differ depending on the data type and type of encoding used in the column. Дополнительные сведения об отличиях типов кодировок, используемых для хранения данных, см. в статье Collation and Unicode Support (Поддержка параметров сортировки и Юникода).For more information on storage differences between different encoding types, see Collation and Unicode Support.

ПримерыExamples

Следующий пример выбирает число символов и данные по имени людей FirstName, живущих в Australia.The following example selects the number of characters and the data in FirstName for people located in Australia. В примере используется база данных AdventureWorks.This example uses the AdventureWorks database.

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

Примеры: Azure Synapse Analytics (хранилище данных SQL)Azure Synapse Analytics (SQL DW) и Параллельное хранилище данныхParallel Data WarehouseExamples: Azure Synapse Analytics (хранилище данных SQL)Azure Synapse Analytics (SQL DW) and Параллельное хранилище данныхParallel Data Warehouse

В приведенном ниже примере возвращается число символов в столбце FirstName, а также первое и последнее имена сотрудников в Australia.The following example returns the number of characters in the column FirstName and the first and last names of employees located in Australia.

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

Ниже приводится результирующий набор.Here is the result set.

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

См. также:See Also

DATALENGTH (Transact-SQL) DATALENGTH (Transact-SQL)
CHARINDEX (Transact-SQL)CHARINDEX (Transact-SQL)
PATINDEX (Transact-SQL)PATINDEX (Transact-SQL)
LEFT (Transact-SQL) LEFT (Transact-SQL)
RIGHT (Transact-SQL)RIGHT (Transact-SQL)
Типы данных (Transact-SQL) Data Types (Transact-SQL)
Строковые функции (Transact-SQL)String Functions (Transact-SQL)