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

  • 相关阅读:
    jmeter测试接口--form表单提交请求(解决请求传参为空的问题)
    jmeter测试接口-打开很多TCP的连接数TIME_WAIT状态(Linux环境)导致报错的解决方法
    Jmeter 事务下的if控制器和无事务下的if控制器是否有不同 (业务实现3:2的补充)
    Jmeter if控制器的使用
    Jmeter 文件格式的参数化
    CentOS7学习笔记--tomcat9环境安装
    CentOS7学习笔记--PHP环境安装
    CentOS学习笔记—启动、ROOT密码
    虚拟机硬盘扩容
    win7如何设置某个软件不弹出用户账户控制
  • 原文地址:https://www.cnblogs.com/supperwu/p/2258469.html
Copyright © 2011-2022 走看看