列で使用されるスペースの最大量を取得するにはどうすればよいですか?
例えば:
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 ) を除いた文字数で式の長さを指定します。0x20SP
DataLength(exp)末尾の空白を含む式の長さをバイト単位で返します。
char、varchar、binaryまたはを使用している場合、 /はシングルバイト文字列であり、/はバイト単位でカウントされるvarbinaryため、唯一の実際の違いは末尾の空白が含まれているかどうかです。charvarcharbinaryvarbinary
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フィールドは、末尾のスペースで幅が埋められることを考慮する必要があります。