В SQL Server 2005, в чем разница между len () и datalength ()? - PullRequest
4 голосов
/ 17 февраля 2009

В чем разница между len () и длиной данных () в SQL Server 2005?

Ответы [ 4 ]

7 голосов
/ 17 февраля 2009

DATALEN возвращает количество байтов, которые используются для хранения значения:

http://msdn.microsoft.com/en-us/library/ms173486(SQL.90).aspx

LEN вернет количество символов в строке. Поскольку в строке могут использоваться одно- или двухбайтовые символы, это отличается от DATALENGTH тем, что вы всегда получите 1, независимо от длины отдельного символа:

http://msdn.microsoft.com/en-us/library/ms190329.aspx

4 голосов
/ 17 февраля 2009

DATALENGTH возвращает длину строки в байтах, включая завершающие пробелы. LEN возвращает длину в символах, исключая завершающие пробелы. Например,

ВЫБРАТЬ LEN ( 'строка'), LEN («строка»), DATALENGTH ( 'строка'), DATALENGTH ('строка'), LEN (N'string '), LEN (N'string '), DATALENGTH (N'string '), DATALENGTH (N'string ')

вернет 6, 6, 6, 9, 6, 6, 12, 18

2 голосов
/ 17 февраля 2009

Len () обрежет (удалит завершающие пробелы) из данных.

Функция DataLength () не

Примеры: Выберите Len («Тест») - это вернет 4

Выберите DATALENGTH («Тест») - это вернет 5

ДАЛЕЕ (обобщено из других фантастических и полезных ответов):

DATALENGTH возвращает длину строки в байтах, включая завершающие пробелы http://msdn.microsoft.com/en-us/library/ms173486(SQL.90).aspx

LEN возвращает длину в символах, исключая завершающие пробелы http://msdn.microsoft.com/en-us/library/ms190329.aspx

Поскольку строки могут состоять из одного или 2 байтов (Unicode), результаты использования любого из них будут различаться в зависимости как от типа данных строки, так и от наличия пробелов в строке

Например,

ВЫБРАТЬ LEN ( 'строка'), LEN («строка»), DATALENGTH ( 'строка'), DATALENGTH ('строка'), LEN (N'string '), LEN (N'string '), DATALENGTH (N'string '), DATALENGTH (N'string ')

вернется 6, 6, 6, 7, 6, 6, 12, 14

0 голосов
/ 17 февраля 2009

Что касается строк, datalength () возвращает количество байтов, а len () возвращает целочисленное значение для количества символов.

...