IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> 第八十六章 SQL函数 $LISTLENGTH -> 正文阅读

[大数据]第八十六章 SQL函数 $LISTLENGTH

第八十六章 SQL函数 $LISTLENGTH

返回指定列表中元素数量的列表函数。

大纲

$LISTLENGTH(list)

参数

  • list- 计算结果为有效列表的表达式。列表是包含一个或多个元素的编码字符串。您可以使用 SQL 或 ObjectScript 的 $LISTBUILD$LISTFROMSTRING 函数创建列表。您可以使用 SQL 或 ObjectScript $LIST 函数从现有列表中提取列表。

描述

$LISTLENGTH 返回列表中元素的数量。

此函数返回 SMALLINT 类型的数据。

示例

以下嵌入式 SQL 示例返回 3,因为列表中有 3 个元素:

/// d ##class(PHA.TEST.SQLFunction).ListLength()
ClassMethod ListLength()
{
	s a = $lb("Red", "Blue", "Green")
	&sql(
		SELECT $LISTLENGTH(:a) INTO :b
	)
	if SQLCODE '= 0 {
		w !,"Error code;",SQLCODE 
	} else {
		w !,"The number of elements is ",b 
	}
}
DHC-APP> d ##class(PHA.TEST.SQLFunction).ListLength()
 
The number of elements is 3

以下 SQL 示例也返回 3,因为列表中有 3 个元素:

SELECT $LISTLENGTH($LISTBUILD('Red','Blue','Green'))

3

以下嵌入式 SQL 示例也返回 3。列表中有 3 个元素,但第二个元素不包含数据:

/// d ##class(PHA.TEST.SQLFunction).ListLength1()
ClassMethod ListLength1()
{
	s a = $lb("Red", , "Green")
	&sql(
		SELECT $LISTLENGTH(:a) INTO :b
	)
	if SQLCODE '= 0 {
		w !,"Error code;",SQLCODE 
	} else {
		w !,"The number of elements is ",b 
	}
}
DHC-APP>d ##class(PHA.TEST.SQLFunction).ListLength1()
 
The number of elements is 3

在下面的 SQL 示例中,每个 $LISTLENGTH 返回 3,因为列表中有 3 个元素,尽管第二个元素不包含数据:

SELECT $LISTLENGTH($LISTBUILD('Red','','Green')),
       $LISTLENGTH($LISTBUILD('Red',NULL,'Green')),
       $LISTLENGTH($LISTBUILD('Red',,'Green'))
       
3	3	3

注意

无效列表

如果 list 不是有效的列表,则会生成 SQLCODE -400 致命错误:

/// d ##class(PHA.TEST.SQLFunction).ListLength2()
ClassMethod ListLength2()
{
	s a = "fred"
	&sql(
		SELECT $LISTLENGTH(:a) INTO :b
	)
	if SQLCODE '= 0 {
		w !,"Error code;",SQLCODE 
	} else {
		w !,"The number of elements is ",b ; Variable not set
	}
}
DHC-APP>d ##class(PHA.TEST.SQLFunction).ListLength2()
 
Error code;-400

如果使用 ObjectScript $LISTBUILD 函数构建一个仅包含空字符串的列表,则这是一个有效列表,包含一个元素:

/// d ##class(PHA.TEST.SQLFunction).ListLength3()
ClassMethod ListLength3()
{
	s a = $lb("")
	&sql(
		SELECT $LISTLENGTH(:a) INTO :b
	)
	if SQLCODE '= 0 {
		w !,"Error code;",SQLCODE 
	} else {
		w !,"The number of elements is ",b 
	}
}

DHC-APP>d ##class(PHA.TEST.SQLFunction).ListLength3()
 
The number of elements is 1

null列表

SQL $LISTLENGTH 函数和ObjectScript $LISTLENGTH 函数在处理空列表(不包含元素的列表)的方式上有所不同。

以下三个嵌入式 SQL 示例显示 $LISTLENGTH SQL 函数如何处理空列表。在前两个示例中,list 是空字符串,并返回一个空字符串:

/// d ##class(PHA.TEST.SQLFunction).ListLength4()
ClassMethod ListLength4()
{
	s a = ""
	&sql(
		SELECT $LISTLENGTH(:a)
			INTO :b
	)
	if SQLCODE '= 0 {
		w !,"Error code;",SQLCODE 
	} else {
		w !,"The number of elements is ",b 
	}
}
DHC-APP>d ##class(PHA.TEST.SQLFunction).ListLength4()
 
The number of elements is
/// d ##class(PHA.TEST.SQLFunction).ListLength5()
ClassMethod ListLength5()
{
	&sql(
		SELECT $LISTLENGTH(NULL)
			INTO :b
	)
	if SQLCODE '= 0 {
		w !,"Error code;",SQLCODE 
	} else {
		w !,"The number of elements is ",b 
	}
}
DHC-APP> d ##class(PHA.TEST.SQLFunction).ListLength5()
 
The number of elements is

在第三个例子中,list 是值 $CHAR(0),它是一个无效的列表;生成 SQLCODE -400 致命错误:

/// d ##class(PHA.TEST.SQLFunction).ListLength6()
ClassMethod ListLength6()
{
	&sql(
		SELECT $LISTLENGTH('')
			INTO :b
	)
	if SQLCODE '= 0 {
		w !,"Error code;",SQLCODE 
	} else {
		w !,"The number of elements is ",b 
	}
}
DHC-APP>d ##class(PHA.TEST.SQLFunction).ListLength6()
 
Error code;-400

请注意,这与 ObjectScript $LISTLENGTH 函数处理空列表的方式不同。在 ObjectScript 中,空字符串 ("") 用于表示空列表,即不包含任何元素的列表。因为它不包含列表元素,所以它的 $LISTLENGTH 计数为 0,如下例所示:

DHC-APP>   WRITE $LISTLENGTH("")
0

$LISTLENGTH 和嵌套列表

以下嵌入式 SQL 示例返回 3,因为 $LISTLENGTH 无法识别嵌套列表中的各个元素:

/// d ##class(PHA.TEST.SQLFunction).ListLength7()
ClassMethod ListLength7()
{
	s a = $lb("Apple", "Pear", $LISTBUILD("Walnut", "Pecan"))
	&sql(
		SELECT $LISTLENGTH(:a)
			INTO :b
	)
	if SQLCODE '= 0 {
		w !,"Error code;",SQLCODE 
	} else {
		w !,"The number of elements is ",b 
	}
}

DHC-APP>d ##class(PHA.TEST.SQLFunction).ListLength7()
 
The number of elements is 3
  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2022-03-21 20:57:41  更:2022-03-21 21:01:56 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 6:25:40-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码