len()函数获取到的一个空格长度是0,获取到的一个Tab的长度是1,而在right()、len()、substring()函数中,一个空格的占的长度是1,一个Tab占的长度是9,为什么这样设计?谁能给出合理的解释!

解决方案 »

  1.   

    len规定是不取尾随空格的,tab本来就是一个字符,只不过表像为N个空格的组合
    right,left,substring规定没有取消尾随空格,而且也没见你说的一个Tab长度是9,还是1
    至于为什么这么设计,不好解释
      

  2.   

    ,我没有深入的测试,这是个特殊的例子,不知是什么原因!新建一个表测试一下,一个TAB在Right、left、substring函数中其实是占一个长度,那就是这个表的这个列出问题,不知道什么问题!
      

  3.   

    SELECT LEN('123 ') AS TAB,LEN('123 ') AS blank
    /*
    TAB blank
    4 3*/SELECT RIGHT('123 ',2) AS TAB,RIGHT('123 ',2) AS blank    --未见lz所说占位为9
    /*
    TAB blank
    3  3 */