当前位置:Gxlcms > 数据库问题 > SQLServer中DataLength()和Len()两内置函数的区别(转载)

SQLServer中DataLength()和Len()两内置函数的区别(转载)

时间:2021-07-01 10:21:17 帮助过:20人阅读

声明标量变量 declare @a varchar(max)
--给变量赋值‘AAA‘
set @a = AAA
--分别查询长度
select LEN(@a) AS a_len,DATALENGTH (@a) AS a_datalength

1、@a=‘AAA‘,结果如下: 

技术分享图片

2、@a=‘AAA ‘,这里尾部加了两个空格,结果如下:

技术分享图片

3、@a=‘ AAA‘,这里前面加了两个空格,结果如下:

技术分享图片

4、@a=‘A A A‘,这里A之间各加一个空格,结果如下:

技术分享图片

得出以下结论:

当采用非Unicode编码时,即varchar类型的字符串时,DataLength()和Len()的区别:

  • Len() 字符串表达式的字符数,不计尾部空格,但计头部空格和中间的空格;
  • DataLength() 任何表达式的字节数,包括空格,所以当数据类型是nvarchar时,其实DataLength() 除以2就相当于Len()计算字符串末尾空格后的字符数,所以计算sql server中nvarchar字符串长度的最佳方式就是DataLength() /2

当采用UniCode编码时,感兴趣同学的可以自己试一下什么结果。

 

原文链接

 

SQLServer中DataLength()和Len()两内置函数的区别(转载)

标签:div   自己   字母   nbsp   ima   strong   map   arc   alt   

人气教程排行