ICode9

精准搜索请尝试: 精确搜索
首页 > 数据库> 文章详细

第二十六章 SQL函数 CHARACTER_LENGTH

2022-01-18 12:58:21  阅读:96  来源: 互联网

标签:返回 字符 示例 CHARACTER LENGTH SQL SELECT


文章目录

第二十六章 SQL函数 CHARACTER_LENGTH

返回表达式中的字符数的函数。

大纲

CHARACTER_LENGTH(expression)

参数

  • expression - 表达式,可以是列名、字符串文字或另一个标量函数的结果。底层数据类型可以是字符类型(如CHARVARCHAR)、数字或数据流。

CHARACTER_LENGTH返回整数数据类型。

描述

CHARACTER_LENGTH返回一个整数值,表示指定表达式中的字符数,而不是字节数。表达式可以是字符串,也可以是任何其他数据类型,如数字或数据流字段。返回的整数计数包括前导和尾随空格以及字符串终止字符。如果传递NULL值,则CHARACTER_LENGTH返回NULL,如果传递空字符串(‘’)值,则返回0

在计算字符之前,会将数字解析为规范形式;不会解析带引号的数字字符串。在下面的示例中,第一个CHARACTER_LENGTH返回1(因为数字分析删除了前导和尾随零),第二个CHARACTER_LENGTH返回8

SELECT CHARACTER_LENGTH(007.0000) AS NumLen,
       CHARACTER_LENGTH('007.0000') AS NumStringLen

在这里插入图片描述

注意:CHARACTER_LENGTHCHAR_LENGTHDATALENGTH函数是相同的。
它们都接受一个流字段参数。
LENGTH$LENGTH函数不接受流字段参数。

LENGTH与这些函数的不同之处在于,在计算字符之前会去掉尾随空格和字符串终止字符。
$LENGTH也不同于这些函数,因为如果传入一个NULL值,它返回0,如果传入一个空字符串,则返回0

示例

下面的示例返回Sample中状态缩写字段(Home_State)中的字符数。
员工表。
(美国各州都有两个字母的邮政缩写):

SELECT DISTINCT CHARACTER_LENGTH(Home_State) AS StateLength
     FROM Sample.Employee

在这里插入图片描述

下面的例子返回员工的名字和每个员工名字中的字符数,按字符数升序排列:

SELECT Name,
     CHARACTER_LENGTH(Name) AS NameLength
     FROM Sample.Employee
     ORDER BY NameLength

在这里插入图片描述

以下示例返回Sample.Employee表中的字符流字段(Notes)和二进制流字段(Picture)中的字符数:

SELECT DISTINCT CHARACTER_LENGTH(Notes) AS NoteLen
     FROM Sample.Employee WHERE Notes IS NOT NULL
SELECT DISTINCT CHARACTER_LENGTH(Picture) AS PicLen
     FROM Sample.Employee WHERE Picture IS NOT NULL

下面的嵌入式SQL示例演示了CHARACTER_LENGTH如何处理Unicode字符。CHARACTER_LENGTH计算字符数,而不考虑其字节长度:

ClassMethod CHARACTERLENGTH()
{
	SET a=$CHAR(960)_"FACE"
	WRITE !,a
	&sql(SELECT CHARACTER_LENGTH(:a) INTO :b)
	IF SQLCODE'=0 {WRITE !,"Error code ",SQLCODE }
	ELSE {WRITE !,"The CHARACTER length is ",b }
}

DHC-APP>d ##class(PHA.TEST.SQLCommand).CHARACTERLENGTH()
 
πFACE
The CHARACTER length is 5

标签:返回,字符,示例,CHARACTER,LENGTH,SQL,SELECT
来源: https://blog.csdn.net/yaoxin521123/article/details/122557661

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有