首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SQL Server 2005中的Len()与datalength()

SQL Server 2005中的Len()与datalength()
EN

Stack Overflow用户
提问于 2009-07-20 04:20:44
回答 6查看 37.6K关注 0票数 34

最近,当我在查询中使用len()来找出查询的长度时,我遇到了一个问题,len()没有计算值中的尾随空格。但datalength()也在计算尾随空格。

这是否意味着,如果我正在做一些操作,处理值的实际长度,那么我必须在len()上使用dalalength()

例如:如果我需要一个特定值的值是10个字符的长度。也就是说,如果值是3个字符长度,我必须在它后面附加7个空格。

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2009-07-20 04:26:35

是的,这正是你必须要做的。如果您只想获取除空格之外的字符数,则可以使用LEN()函数,而在所有其他情况下使用DATALENGTH()

即使是LEN()文档中也有这样一条信息,即为了获得表示扩展的字节数,您应该使用DATALENGTH()

以下是指向MSDN文档的链接:

LEN()

DATALENGTH()

票数 22
EN

Stack Overflow用户

发布于 2009-07-20 04:28:33

注意。DATALENGTH返回使用的字节数,而不是字符数。

票数 36
EN

Stack Overflow用户

发布于 2009-07-20 14:20:52

len计算使用的字符数,而不是所需的存储空间,当您使用nvarchar而不是varchar时,这一点将更加明显

len也不计算尾随空格

看看这个

代码语言:javascript
复制
declare @v nchar(5)
select @v ='ABC  '


select len(@v),datalength(@v)

len的输出为3,而datalength的输出为10

票数 11
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1151693

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档