标签归档:len函数应用

mssql sqlserver sql关键字len和datalength区别简介说明


摘要:
下文讲述sqlserver中关键字len和datalength的区别,如下所示:
实验环境:sql server 2008 R2



len和datalength关键字的区别主要在于两个关键字的实际用途不一样


len关键字简介

len关键字功能:
返回表达式中的字符串个数(字符串后的空格不作为字符串个数返回)
len 关键字的返回值为一个int数值的数据
len 关键字用法举例:

    declare @t varchar(300)
    set @t ='maomao365.com';
    select len(@t)
   


len关键字注意事项:
1.当数据类型为varchar(max)、nvarchar(max) 或 varbinary(max)时,则返回一个bigint数值
其它字符串类型则返回int型
2.此关键字不能获取text、ntext类型中字符串的长度
3.此关键字获取字符串中的字符个数时,将自动剔除字符串末尾的空格个数



datalength关键字简介

datalength关键字功能:
返回所有表达式在数据库中所占用的字节数
datalength关键字返回值类型说明:
将返回一个int型的数据

    declare @t varchar(300)
     set @t ='maomao365.com';
     select datalength(@t)


datalength关键字注意事项:
对于可变长的数据类型,每次获取datalength的长度可能发生变化。

通过以上的学习,我们可以看出len的返回值和datalength的返回值含义完全不一致,
1.len关键字遇到汉字时,则返回1,但是datalength返回2
2.len关键字遇到char一些定长数据类型时,会自动剔除末尾的空格,返回实际的字符个数
datalength关键字则返回char数据类型实际占用的字节数

mssql sqlserver 获取计算机字符串“头部”或“尾部”的空格长度


摘要:
下文讲述sql脚本获取”头部”或”尾部”的空格长度的方法分享,如下所示:
实验环境:sql server 2008 R2



实现思路:
使用ltrim和rtrim截取字符串空格和len长度获取长度,
主要使用len对截取字符串前后的长度进行对比,得到空字符串的长度。

    declare @maomaoA varchar(300)
   
    ---计算头部空格字符串
    set @maomaoA ='     maomao365.com';
    select len(@maomaoA)  -   len(ltrim(@maomaoA))   as [头部字符串长度]
 
     ---计算尾部空格字符串
    set @maomaoA ='maomao365.com  ';
    select len(@maomaoA)  -   len(rtrim(@maomaoA))   as [尾部字符串长度]