Вопрос

В чем разница между len() и datalength() в SQL Server 2005?

Это было полезно?

Решение

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

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

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

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

Другие советы

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

Выберите Len ('string'), len ('string'), dataLength ('string'), dataLength ('string'), len (n'String '), len (n'String'), dataLength (n'String '), Datalength (n'String')

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

Len() обрежет (удалит конечные пробелы) из данных.

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

Примеры:Выберите Len ('test') - это вернет 4

Выберите DataLength ('test') - это вернет 5

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

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

LEN возвращает длину в СИМВОЛАХ, исключая конечные пробелы.http://msdn.microsoft.com/en-us/library/ms190329.aspx

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

Например,

Выберите Len ('string'), len ('string'), dataLength ('string'), dataLength ('string'), len (n'String '), len (n'String'), dataLength (n'String '), Datalength (n'String')

Вернутся 6, 6, 6, 7, 6, 6, 12, 14

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top