MSSQL求取字符串长度的实现方法(mssql 取字符串长度)
MSSQL求取字符串长度的实现方法
MSSQL是一种关系型数据库管理系统,其中的字符串长度是显示某个字符串变量或列占用的字节数。求取字符串长度可以使用内置函数LEN来完成,其原型为LEN(string_value),string_value可以是任何字符串字面量、字段、变量等,即可以获取字符串变量、列或字面量的长度。
下面举个栗子,我们定义一个字符串变量,并求取其长度:
DECLARE @name VARCHAR(100)
SET @name = ‘HelloWorld’
SELECT LEN(@name)
执行结果为:10
可以看到,LEN函数默认以字节为单位计算长度,而每个字母、字符都占一个字节。即“HelloWorld”这个字符串共占用10个字节。如果使用Unicode,字符串所占用的长度将会是20、30、甚至更多,这将直接影响字符串在数据库中存放的位置。
使用Unicode计算字符串长度可以使用LEN函数的另一个重载函数,原型为LEN(string_value COLLATE DATABASE_DEFAULT),其中COLLATE DATABASE_DEFAULT表示使用当前数据库的数据排序规则,比如Unicode。比如:
DECLARE @name NVARCHAR(100)
SET @name = N’HelloWorld’
SELECT LEN(@name COLLATE DATABASE_DEFAULT)
结果为:20
可以看到,使用Unicode计算的结果为20,即字符串“HelloWorld”使用Unicode时占用20个字节。可见,LEN函数在求取字符串长度时有极大的优势,无需关心字符串是字面量、变量还是列,而且也可以使用它来计算Unicode所占用的字节。