SQL Server 2005のlen()とdatalength()の違いは何ですか?
4 に答える
DATALENは、値を格納するために使用されるバイト数を返します。
http://msdn.microsoft.com/en-us/library/ms173486(SQL.90).aspx
LENは、文字列の文字数を返します。文字列は1バイト文字または2バイト文字を使用できるため、これはDATALENGTHとは異なり、1文字の長さに関係なく常に1を取得します。
DATALENGTHは、末尾のスペースを含む文字列の長さをバイト単位で返します。LENは、末尾のスペースを除いた長さを文字数で返します。例えば、
SELECT LEN('string')、LEN('string')、DATALENGTH('string')、DATALENGTH('string')、LEN(N'string')、LEN(N'string')、DATALENGTH(N'string ')、DATALENGTH(N'文字列')
6、6、6、9、6、6、12、18を返します
Len()は、データからトリミング(末尾のスペースを削除)します。
DataLength()関数はしません
例:Select Len('Test')-これは4を返します
DATALENGTH('Test')を選択します-これは5を返します
FURTHERMORE(他の素晴らしくて役に立つ答えから集められた):
DATALENGTHは、末尾のスペースを含む文字列の長さをBYTESで返します http://msdn.microsoft.com/en-us/library/ms173486(SQL.90).aspx
LENは、末尾のスペースを除く長さを文字で返します http://msdn.microsoft.com/en-us/library/ms190329.aspx
文字列は1バイトまたは2バイト(Unicode)で構成されている可能性があるため、どちらかを使用した結果は、文字列のデータ型と文字列に末尾のスペースがあるかどうかの両方によって異なります。
例えば、
SELECT LEN('string')、LEN('string')、DATALENGTH('string')、DATALENGTH('string')、LEN(N'string')、LEN(N'string')、DATALENGTH(N'string ')、DATALENGTH(N'文字列')
6、6、6、7、6、6、12、14を返します
文字列に関しては、datalength()はバイト数を返し、len()は文字数の整数値を返します。