declare @s char(10)
set @s='   ' --set @s='4    ' --想要得到带空白的确切长度
select len(@s)

解决方案 »

  1.   

    DECLARE @S VARCHAR(10)
    SET @S='  ' --SET @S='4    ' --想要得到带空白的确切长度
    SELECT LEN(@S+'A')-1
      

  2.   

    DECLARE @S VARCHAR(10)
    SET @S='AAAA  ' --SET @S='4    ' --想要得到带空白的确切长度
    SELECT LEN(@S+'A')-1-LEN(LTRIM(RTRIM(@S)))
      

  3.   

    char 和 varchar
    固定长度 (char) 或可变长度 (varchar) 字符数据类型。char[(n)]长度为 n 个字节的固定长度且非 Unicode 的字符数据。n 必须是一个介于 1 和 8,000 之间的数值。存储大小为 n 个字节。char 在 SQL-92 中的同义词为 character。varchar[(n)]长度为 n 个字节的可变长度且非 Unicode 的字符数据。n 必须是一个介于 1 和 8,000 之间的数值。存储大小为输入数据的字节的实际长度,而不是 n 个字节。所输入的数据字符长度可以为零。varchar 在 SQL-92 中的同义词为 char varying 或 character varying。
      

  4.   


    declare @s varchar(10)
    set @s='   ' --set @s='4    ' --想要得到带空白的确切长度
    select len(@s+'a')-1
                
    ----------- 
    3(所影响的行数为 1 行)
      

  5.   


    declare @s varchar(10)
    set @s='   ' --set @s='4    ' --想要得到带空白的确切长度
    select @s=@s+'a'
    select len(@s)-1
                
    ----------- 
    3(所影响的行数为 1 行)