列で使用されるスペースの最大量を取得するにはどうすればよいですか?
例えば:
ID ColumnA
1 xxxxx
2 xxx
10 xxxxxxx
ID は 2 つのスペースを使用し、ColumnA は 7 つのスペースを使用します。
列で使用されるスペースの最大量を取得するにはどうすればよいですか?
例えば:
ID ColumnA
1 xxxxx
2 xxx
10 xxxxxxx
ID は 2 つのスペースを使用し、ColumnA は 7 つのスペースを使用します。
Len(exp)
末尾の空白 ( , Ascii ) を除いた文字数で式の長さを指定します。0x20
SP
DataLength(exp)
末尾の空白を含む式の長さをバイト単位で返します。
char
、varchar
、binary
またはを使用している場合、 /はシングルバイト文字列であり、/はバイト単位でカウントされるvarbinary
ため、唯一の実際の違いは末尾の空白が含まれているかどうかです。char
varchar
binary
varbinary
nchar
またはを使用している場合nvarchar
、これらは2 バイト文字列であるため、各文字は 2 バイトでありlen()
、長さを文字数でdatalength()
返し、長さをバイト数で返します。その違いを考慮に入れる必要があります。そう...
declare @some_string nvarchar(4000)
select @some_string = max(t.some_column)
from some_table t
declare
@length_in_chars_excluding_trailing_spaces = len( @some_string ) ,
@length_in_chars_including_trailing_spaces = datalength( @some_string ) / 2
あなたをすべきです。
char
固定長フィールドとnchar
フィールドは、末尾のスペースで幅が埋められることを考慮する必要があります。