代码之家  ›  专栏  ›  技术社区  ›  dplante Tschallacka

在SQL Server 2005中,len()和datalength()有什么区别?

  •  4
  • dplante Tschallacka  · 技术社区  · 16 年前

    SQL Server 2005中len()和datalength()的区别是什么?

    4 回复  |  直到 13 年前
        1
  •  7
  •   casperOne    16 年前

    datalen将返回用于存储值的字节数:

    http://msdn.microsoft.com/en-us/library/ms173486(SQL.90).aspx

    len将返回字符串中的字符数。由于字符串可以使用单字节或双字节字符,这与datalength不同,因为无论单个字符有多长,您都将得到1:

    http://msdn.microsoft.com/en-us/library/ms190329.aspx

        2
  •  4
  •       16 年前

    datalength返回字符串的长度(以字节为单位),包括尾随空格。len返回以字符为单位的长度,不包括尾随空格。例如,

    选择 莱恩(弦乐), len('string'), datalength(“字符串”), datalength(“字符串”), 莱恩(N'Stand), len(n'string'), 数据长度(n'string'), 数据长度(n'string')

    将返回6、6、6、9、6、6、12、18

        3
  •  2
  •   dplante Tschallacka    16 年前

    len()将从数据中修剪(删除尾随空格)。

    datalength()函数没有

    实例: 选择len(“测试”) --这将返回4

    选择数据长度(“测试”) --这将返回5

    此外(从其他奇妙而有用的答案中总结出来):

    datalength返回字符串的长度(以字节为单位),包括尾随空格 http://msdn.microsoft.com/en-us/library/ms173486(SQL.90).aspx

    len返回以字符为单位的长度,不包括尾随空格 http://msdn.microsoft.com/en-us/library/ms190329.aspx

    由于字符串可能由一个或2个字节(Unicode)组成,因此根据字符串的数据类型以及字符串中是否有尾随空格,使用这两个字节的结果都会有所不同。

    例如,

    选择 莱恩(弦乐), 莱恩(弦乐), datalength(“字符串”), datalength(“字符串”), 莱恩(N'Stand), len(n'string'), 数据长度(n'string'), 数据长度(n'string')

    将返回 6,6,6,7,6,6,12,14

        4
  •  0
  •   MrEdmundo    16 年前

    对于字符串,datalength()返回字节数,len()返回字符数的整数值。

    推荐文章