sql datalength与len区别用法

len ( string_expression )参数:要计算的字符串

len() 函数
len 函数返回文本字段中值的长度。

sql len() 语法
select len(column_name) from table_name

我们希望取得 "city" 列中值的长度。

我们使用如下 sql 语句:

select len(city) as lengthofaddress from persons

返回指定字符串表达式的字符数,其中不包含尾随空格。
如果 expression 的数据类型为 varchar(max)、nvarchar(max) 或 varbinary(max),则为 bigint;否则为 int。
不可以对ntext字段进行计算

datalength ( expression ) 参数:任何数据类型的表达式

语法
datalength ( expre(www.111cn.net)ssion )

参数
expression

任何类型的表达式。

返回类型
int

use adventureworks2008r2;
go
select length = datalength(name), name
from production.product
order by name;
go

返回用于表示任何表达式的字节数。
如果 expression 的数据类型为 varchar(max)、nvarchar(max) 或 varbinary(max) 数据类型,则返回 bigint;否则返回 int。
对于 varchar、varbinary、text、image、nvarchar 和 ntext 数据类型,datalength 尤其有用,因为这些数据类型可以存储长度可变的数据。www.111cn.net
null 的 datalength 的结果是 null。
from:http://www.111cn.net/database/mssqlserver/37823.htm

时间: 2024-12-14 20:38:55

sql datalength与len区别用法的相关文章

SQL Server 函数 LEN 与 DATALENGTH的区别

DATALENGTH()函数返回一个用于对值进行管理的字节数,这有助于揭示不同数据类型间的一些有趣差别. 当把varchar类型传递给DATALENGTH()和LEN()函数时,它们将返回相同的值: DECLARE @Value varchar(20) SET @Value = 'abc' SELECT DATALENGTH(@Value) SELECT LEN(@Value) 这些语句的返回值都为3. 因为varchar类型使用了3个单字节字符来存储三个字符的值.然而,如果使用nVarchar

SQLServer中DataLength()和Len()两内置函数的区别(转载)

最近工作中遇到了个问题:在数据库中声明字段类型时char(4),但实际只存储了‘DCE’三个字母,程序中拼装以该字段作为key的Map中,会把‘DCE’+空格作为其Key,这样造成用没加空格的‘DCE’为key去取Value的值是取不出来的,结果是空.后来查看数据库字段类型才发现了问题所在.大家都知道,char和varchar的区别就在于一个是固定长度,一个是可变长度.在寻找问题的过程中,用到了我们今天要说的这两个内置函数,DataLength()和Len().在解释DataLength()和L

SQL中IN和EXISTS用法的区别

NOT IN SELECT DISTINCT MD001 FROM BOMMD WHERE MD001 NOT IN (SELECT MC001 FROM BOMMC) NOT EXISTS,exists的用法跟in不一样,一般都需要和子表进行关联,而且关联时,需要用索引,这样就可以加快速度 select DISTINCT MD001 from BOMMD WHERE NOT EXISTS (SELECT MC001 FROM BOMMC where BOMMC.MC001 = BOMMD.MD

sql事务(Transaction)用法介绍及回滚实例_转

sql事务(Transaction)用法介绍及回滚实例 事务(Transaction)是并发控制的单位,是用户定义的一个操作序列.这些操作要么都做,要么都不做,是一个不可分割的工作单位.通过事务,SQL Server能将逻辑相关的一组操作绑定在一起,以便服务器保持数据的完整性 当对多个表进行更新的时候,某条执行失败.为了保持数据的完整性,需要使用事务回滚. 显示设置事务 代码如下 begin try   www.2cto.com begin transaction insert into shi

SQL Server 中 RAISERROR 的用法(转)

在存储过程中进程会处理一些逻辑性的错误,如:将RMB转换为USD时,没有查询到想要的汇率 这个时候最好在存储过程中抛个异常,方便自己查找错误信息... 其语法如下: RAISERROR ( { msg_id | msg_str | @local_variable }                    { ,severity ,state }                    [ ,argument [ ,...n ] ]           )          [ WITH optio

Java中List,ArrayList、Vector,map,HashTable,HashMap区别用法

Java中List,ArrayList.Vector,map,HashTable,HashMap区别用法 标签: vectorhashmaplistjavaiteratorinteger ArrayList 和Vector是采用数组方式存储数据,此数组元素数大于实际存储的数据以便增加和插入元素,都允许直接序号索引元素,但是插入数据要设计到数组元素移动 等内存操作,所以索引数据快插入数据慢,Vector由于使用了synchronized方法(线程安全)所以性能上比ArrayList要差,Linke

SQL over的作用及用法

sql over的作用及用法 RANK ( ) OVER ( [query_partition_clause] order_by_clause ) DENSE_RANK ( ) OVER ( [query_partition_clause] order_by_clause ) 可实现按指定的字段分组排序,对于相同分组字段的结果集进行排序, 其中PARTITION BY 为分组字段,ORDER BY 指定排序字段 over不能单独使用,要和分析函数:rank(),dense_rank(),row_

【SQL】行转列过滤,使用别名和不使用别名的区别用法。

需求为: 仿太平洋网站筛选. 多选类型的字段应采用‘并且’:单选和录入类型的字段应采用‘或者’ 比如有如下选项: 参数头 参数体 操作系统(多选) win7 win8 运行内存(单选) 2G 4G 商品库存在有3个商品,分别为: lenovoB111,操作系统:win7.win8,运行内存:2G lenovoB222,操作系统:win7.win8,运行内存:4G lenovoB333:操作系统:win10,运行内存4G 那这个时候,我吧上面的选项win7.win8.2G.4G全部勾选后,点击商品

sql语句replace into的用法

sql replace into用法详细说明 REPLACE的运行与INSERT很相似.只有一点例外,假如表中的一个旧记录与一个用于PRIMARY KEY或一个UNIQUE索引的新记录具有相同的值,则在新记录被插入之前,旧记录被删除. 注意,除非表有一个PRIMARY KEY或UNIQUE索引,否则,使用一个REPLACE语句没有意义.该 语句会与INSERT相同,因为没有索引被用于确定是否新行复制了其它的行. 所有列的值均取自在REPLACE语句中被指定的值.所有缺失的列被设置为各自的默认值,