如何获取列中使用的最大空格量?
例如:
ID ColumnA
1 xxxxx
2 xxx
10 xxxxxxx
ID使用2个空格,ColumnA使用7个空格。
答案 0 :(得分:4)
LEN()
计算字符串中字符的数量。
SELECT MAX(LEN(CAST(ID AS VARCHAR(5)))) MAX_ID_SPACE,
MAX(LEN(ColumnA)) Max_ColA_Space
FROM TableName
答案 1 :(得分:1)
Len(exp)
给出字符中表达式的长度,减去任何尾随空格(0x20
,Ascii SP
)。
DataLength(exp)
给出 bytes 中表达式的长度,包括任何尾随空格。
如果您使用char
,varchar
,binary
或varbinary
,唯一真正的区别在于是否包含尾随空白,因为char
/ varchar
是单字节字符串,binary
/ varbinary
以字节为单位计算。
如果您使用的是nchar
或nvarchar
,它们是双字节字符串,那么每个字符都是两个字节,len()
返回< em> characters ,而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
字段用尾随空格填充到它们的宽度。