5

SQL Server 2005のlen()とdatalength()の違いは何ですか?

4

4 に答える 4

8

DATALENは、値を格納するために使用されるバイト数を返します。

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

LENは、文字列の文字数を返します。文字列は1バイト文字または2バイト文字を使用できるため、これはDATALENGTHとは異なり、1文字の長さに関係なく常に1を取得します。

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

于 2009-02-17T18:25:23.823 に答える
4

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を返します

于 2009-02-17T18:23:36.963 に答える
2

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を返します

于 2009-02-17T18:23:24.483 に答える
0

文字列に関しては、datalength()はバイト数を返し、len()は文字数の整数値を返します。

于 2009-02-17T18:24:36.447 に答える