如何获得列中使用的最大空格数?
例如:
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()
计算字符串中的字符数。
SELECT MAX(LEN(CAST(ID AS VARCHAR(5)))) MAX_ID_SPACE,
MAX(LEN(ColumnA)) Max_ColA_Space
FROM TableName
Len(exp)
以字符为单位给出表达式的长度,减去任何尾随空格 ( 0x20
, Ascii SP
)。
DataLength(exp)
以字节为单位给出表达式的长度,包括任何尾随空格。
如果您使用char
,或varchar
,唯一真正的区别是是否包含尾随空格,因为/是单字节字符串,并且/无论如何都以字节为单位。binary
varbinary
char
varchar
binary
varbinary
如果您使用nchar
or nvarchar
,它们是双字节字符串,那么每个字符是两个字节,并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
字段用尾随空格填充到它们的宽度。