zoukankan      html  css  js  c++  java
  • SQL Server中字符串函数LEN 和 DATALENGTH辨析

    LEN:返回指定字符串表达式的字符(而不是字节)数,其中不包含尾随空格。

    DATALENGTH:返回用于表示任何表达式的字节数。

    示例1:(相同,返回结果都为5): 

    1. select LEN ('sssss')  
    2. select DATALENGTH('sssss')  

    示例2:(不相同,DATALENGTHLEN的两倍):  

    1. select LEN(N'sssss')  
    2. select DATALENGTH(N'sssss')  

    示例3:(不相同,DATALENGTHLEN的两倍多,由于LEN计算时不包含尾空格):  

    1. select LEN(N'sssss  ')  
    2. select DATALENGTH(N'sssss  ')  

    示例4:(不相同,DATALENGTHLEN的两倍,由于LEN计算时不包含尾空格,但包含头部空格)  

    1. select LEN(N' sssss')  
    2. select DATALENGTH(N' sssss')  

    注意:当变量为null时,LEN,DATALENGTH都为null 

    1. DECLARE @MyVar VARCHAR(10)  
    2. SET @MyVar = NULL  
    3. select LEN(@MyVar)  
    4. select DATALENGTH(@MyVar)  

    DATALENGTH()函数返回一个用于对值进行管理的字节数,这有助于揭示不同数据类型间的一些有趣差别。当把varchar类型传递给DATALENGTH()和LEN()函数时,它们将返回相同的值:

    DECLARE @Value varchar(20)  SET @Value = 'abc' SELECT DATALENGTH(@Value)  SELECT LEN(@Value) 这些语句的返回值都为3。因为varchar类型使用了3个单字节字符来存储三个字符的值。然而,如果使用nVarchar类型来管理相同长度的值,就要占用多一倍的字节:

    DECLARE @Value nvarchar(20)  SET @Value = 'abc' SELECT DATALENGTH(@Value)  SELECT LEN(@Value) DATALENGTH()函数返回值为6,因为每个使用Unicode字符集的字符都要占用2个字节。LEN()函数返回值为3,因为这个函数返回字符数,不是字节数。以下是一个有趣的测试:要存储一个值为2的整型变量,要占用多少个字节?而如果要存储一个值为20亿的整型变量,又将占用多少个字节呢?试一下:

    DECLARE @Value1 int, @Value2 int SET @Value1 = 2  SET @Value2 = 2000000000  SELECT DATALENGTH(@Value1)  SELECT LEN(@Value1)  SELECT DATALENGTH(@Value2)  SELECT LEN(@Value2) 在这两种情况下,DATALENGTH()函数都返回4。因为int类型不论值是多少,总是使用4个字节。LEN()函数本质上将整型值当成已转换成字符型的数据来处理,所以,在这个例子中,它分别返回1和10,即值的位数。


    本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/Hello_World_wusu/archive/2009/10/14/4667452.aspx

  • 相关阅读:
    python,生产环境安装
    neo4j 图数据库
    RNN系列
    机器学习关于AUC的理解整理
    fensorflow 安装报错 DEPENDENCY ERROR
    dubbo Failed to check the status of the service com.user.service.UserService. No provider available for the service
    使用hbase遇到的问题
    MISCONF Redis is configured to save RDB snapshots, but is currently not able to persist on disk
    gradle 安装
    jenkins 安装遇到的坑
  • 原文地址:https://www.cnblogs.com/supperwu/p/2258469.html
Copyright © 2011-2022 走看看