Pergunta

O que é a diferença entre len () e datalength () no SQL Server 2005?

Foi útil?

Solução

DataLen irá retornar o número de bytes que são usados ??para armazenar o valor:

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

LEN irá retornar o número de caracteres em uma string. Uma vez que uma corda pode usar caracteres simples ou duplo byte, isto difere da DATALENGTH em que você vai sempre obter 1, não importa quanto tempo um único caractere é:

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

Outras dicas

DATALENGTH retorna o comprimento da cadeia em bytes, incluindo espaços à direita. LEN retorna o comprimento em caracteres, excluindo espaços à direita. Por exemplo,

SELECIONAR LEN ( 'string'), LEN ( 'string'), DATALENGTH ( 'string'), DATALENGTH ( 'string'), LEN (N'string '), LEN (N'string '), DATALENGTH (N'string '), DATALENGTH (N'string ')

retornará 6, 6, 6, 9, 6, 6, 12, 18

O Len () irá cortar (espaços remover espaços) a partir dos dados.

A função DataLength () não

Exemplos: Selecione Len ( 'Test') - o que irá retornar 4

Selecionar DATALENGTH ( 'Test') - o que irá retornar 5

ALÉM DISSO (agregados a partir de outras respostas fantásticas e úteis):

DATALENGTH retorna o comprimento da corda em bytes, incluindo espaços à direita http://msdn.microsoft.com/en-us /library/ms173486(SQL.90).aspx

LEN retorna o comprimento em caracteres, excluindo espaços à direita http://msdn.microsoft.com/en-us/library/ms190329. aspx

Desde cordas pode consistir de um ou 2 bytes (Unicode), os resultados do uso ou vai variar dependendo tanto do tipo de dados da cadeia e se existem espaços à direita na cadeia de caracteres

Por exemplo,

SELECIONAR LEN ( 'string'), LEN ( 'string'), DATALENGTH ( 'string'), DATALENGTH ( 'string'), LEN (N'string '), LEN (N'string '), DATALENGTH (N'string '), DATALENGTH (N'string ')

retornará 6, 6, 6, 7, 6, 6, 12, 14

Com relação a cadeias dataLength () retorna o número de bytes e len () retorna um valor inteiro para a série de caracteres.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top