In SQL Server 2005, qual è la differenza tra len () e datalength ()?
-
05-09-2019 - |
Domanda
Qual è la differenza tra len () e datalength () in SQL Server 2005?
Soluzione
datalen restituisce il numero di byte che vengono utilizzati per memorizzare il valore:
http://msdn.microsoft.com/en -us / library / ms173486 (SQL.90) .aspx
LEN restituisce il numero di caratteri di una stringa. Dal momento che una stringa può utilizzare caratteri singoli oa doppio byte, questo si differenzia da DATALENGTH in che otterrete sempre 1, non importa quanto tempo un singolo carattere è:
Altri suggerimenti
DATALENGTH restituisce la lunghezza della stringa in byte, inclusi gli spazi finali. LEN restituisce la lunghezza in caratteri, esclusi gli spazi finali. Ad esempio,
SELEZIONARE LEN ( 'stringa'), LEN ( 'stringa'), DATALENGTH ( 'stringa'), DATALENGTH ( 'stringa'), LEN (N'string '), LEN (N'string '), DATALENGTH (N'string '), DATALENGTH (N'string ')
restituirà 6, 6, 6, 9, 6, 6, 12, 18
La Len () assetterà (rimuovere gli spazi finali) sulla base dei dati.
La funzione DataLength () non lo fa
Esempi: Seleziona Len ( 'Test') - questo tornerà 4
Seleziona DATALENGTH ( 'Test') - questo ritornerà 5
INOLTRE (aggregati da altre risposte fantastiche e utili):
DATALENGTH restituisce la lunghezza della stringa in byte, inclusi gli spazi finali http://msdn.microsoft.com/en-us /library/ms173486(SQL.90).aspx
LEN restituisce la lunghezza in caratteri, esclusi spazi finali http://msdn.microsoft.com/en-us/library/ms190329. aspx
Poiché stringhe potrebbero consistere di uno o 2 byte (Unicode), i risultati utilizzando varierà a seconda sia il tipo di dati della stringa e se vi siano spazi finali nella stringa
Ad esempio,
SELEZIONARE LEN ( 'stringa'), LEN ( 'stringa'), DATALENGTH ( 'stringa'), DATALENGTH ( 'stringa'), LEN (N'string '), LEN (N'string '), DATALENGTH (N'string '), DATALENGTH (N'string ')
Tornerà 6, 6, 6, 7, 6, 6, 12, 14
Con riferimento a stringhe datalength () restituisce il numero di byte e len () restituisce un valore intero per il numero di caratteri.