0

列で使用されるスペースの最大量を取得するにはどうすればよいですか?

例えば:

ID   ColumnA
1    xxxxx
2    xxx
10   xxxxxxx

ID は 2 つのスペースを使用し、ColumnA は 7 つのスペースを使用します。

4

2 に答える 2

1

Len(exp)末尾の空白 ( , Ascii ) を除いた文字数で式の長さを指定します。0x20SP

DataLength(exp)末尾の空白を含む式の長さをバイト単位で返します。

charvarcharbinaryまたはを使用している場合、 /はシングルバイト文字列であり、/はバイト単位でカウントされる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フィールドは、末尾のスペースで幅が埋められることを考慮する必要があります。

于 2013-09-24T23:49:20.983 に答える