首页 > 数据库 >SQL Server中字符串函数LEN 和 DATALENGTH比对

SQL Server中字符串函数LEN 和 DATALENGTH比对

时间:2023-11-05 22:33:27浏览次数:46  
标签:LEN sssss Value Server select DATALENGTH SELECT

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

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

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

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

示例2:(不相同,DATALENGTH是LEN的两倍):  

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

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

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

示例4:(不相同,DATALENGTH是LEN的两倍,由于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,即值的位数。


标签:LEN,sssss,Value,Server,select,DATALENGTH,SELECT
From: https://blog.51cto.com/u_14682436/8196052

相关文章

  • Vue3 echarts 组件化使用 resizeObserver
    点击查看代码constresizeObserver=ref(null);//进行初始化和监听窗口变化onMounted(async()=>{awaitnextTick(()=>{initChart();setOptions(options.value,opts.value??true);});window.addEventListener('resize',handleResize);resizeO......
  • Kubernetes:kube-apiserver 和 etcd 的交互
    kubernetes:kube-apiserver系列文章:Kubernetes:kube-apiserver之scheme(一)Kubernetes:kube-apiserver之scheme(二)Kubernetes:kube-apiserver之启动流程(一)Kubernetes:kube-apiserver之启动流程(二)0.前言上几篇文章介绍了kubernetes的核心数据结构scheme......
  • SQL server experts
    Personalsitehttps://medium.com/munchy-bytes/microsoft-sql-server-gurus-you-should-follow-2fce3e5120e4https://www.brentozar.com/blitz/https://ola.hallengren.com/sql-server-index-and-statistics-maintenance.htmlgithubhttps://github.com/BrentOzarULTD/SQ......
  • sqlserver查询库中所有表的字段并进行拼接
    --查询库中所有表的字段信息SELECTTABLE_NAME,COLUMN_NAME,DATA_TYPEFROMINFORMATION_SCHEMA.COLUMNSWHERETABLE_SCHEMA='dbo'ORDERBYTABLE_NAME,ORDINAL_POSITION;--查询库中所有表的字段并进行拼接SELECTTABLE_NAME,STUFF((SELECT','+COLUMN_N......
  • Ozon Tech Challenge 2020 (Div.1 + Div.2, Rated, T-shirts + prizes!) B. Kuroni an
    Problem-1305B-Codeforces 啦啦啦,这题题目有点长,概括一下就是,希望将所有()匹配的括号去掉问你需要操作多少次 双指针,一个i一个j,从前往后记录匹配的括号如果发现:1.括号匹配2.i<jok,就放入ans (⊙o⊙)…,最后记得sort一遍ans,第一遍因为这个wa了一发 #include......
  • sse_server sent event_eventSource_websocket替代_socketio替代_服务器端事件
    eventsourcebackend#-*-coding:utf-8-*-#这段代码是使用FastAPI框架创建一个简单的服务器端事件(Server-SentEvents,SSE)的示例。以下是对代码的详细解析:#1.`importjson,random,...`:这行代码导入了需要的Python模块。#2.`event_router=APIRouter()`:这行代码创建......
  • Kubernetes:kube-apiserver 之启动流程(二)
    接着Kubernetes:kube-apiserver之启动流程(一)加以介绍。1.2.2创建APIExtensionsServer创建完通用APIServer后继续创建APIExtensionsServer。func(ccompletedConfig)New(delegationTargetgenericapiserver.DelegationTarget)(*CustomResourceDefinitions,erro......
  • 使用IdentityServer4搭建鉴权服务
    IdentityServer4是ASP.NETCore量身定制的JWT(sonWebToken,token一种的格式 )服务框架,实现了OpenIDConnect和OAuth2.0协议(规范认证授权中间件)。一、创建鉴权服务API1.新建CoreWebAPI进程服务:使用aminimalapi,  //顶级语句---脚本式编程......
  • kubelet和api server之间的通信
    在k8s集群中,每个节点上都运行一个kubelet服务进程,来和master节点来保持通信。kubelet服务进程默认监听10250端口,来接收来自master发来的指令kubelet和apiserver保持双向通信:接受并执行master发来的指令(通过监听10250端口,watch机制)每个kubelet进程会在APIServer上注册节点自......
  • SqlServer各年份版本
    一、年代版本8-SQLServer20009-SQLServer200510-SQLServer200811-SQLServer201212-SQLServer201413-SQLServer201614-SQLServer201715-SQLServer201916-SQLServer2022二、开发版、标准版、企业版版本差异1、SQLServer2016......