文章
姚 鑫 · 三月 17 阅读大约需 2 分钟

第八十四章 SQL函数 $LISTFROMSTRING

第八十四章 SQL函数 $LISTFROMSTRING

从字符串创建列表的列表函数。

大纲

$LISTFROMSTRING(string[,delimiter])

参数

  • string - 要转换为 列表的字符串。此字符串包含一个或多个元素,由分隔符分隔。分隔符不会成为生成的列表的一部分。
  • delimiter - 可选 — 用于分隔字符串中的子字符串(元素)的分隔符。将分隔符指定为带引号的字符串。如果未指定分隔符,则默认为逗号 (,) 字符。

描述

$LISTFROMSTRING 接受一个包含分隔元素的带引号的字符串并返回一个列表。列表以不使用分隔符的编码格式表示数据。因此,列表可以包含所有可能的字符,并且非常适合位串数据。使用 ObjectScript 和 SQL $LIST 函数处理列表。

参数

string

字符串文字(用单引号括起来)、数字或计算结果为字符串的变量或表达式。此字符串可以包含一个或多个子字符串(元素),由分隔符分隔。字符串数据元素不得包含分隔符(或字符串),因为分隔符不包含在输出列表中。

delimiter

用于在输入字符串中分隔子字符串的字符(或字符串)。它可以是数字或字符串文字(括在单引号中)、变量的名称或计算结果为字符串的表达式。

通常,定界符是在字符串数据中从不使用的指定字符,但仅用作分隔子字符串的定界符。定界符也可以是多字符串,其中的各个字符可以在字符串数据中使用。如果不指定分隔符,则默认分隔符是逗号 (,) 字符。

示例

以下嵌入式 SQL 示例采用由空格分隔的名称字符串,并创建一个列表:

/// d ##class(PHA.TEST.SQLFunction).ListFromString()
ClassMethod ListFromString()
{
    s names = "Deborah Noah Martha Bowie"
    &sql(
        SELECT $LISTFROMSTRING(:names,' ')
            INTO :namelist
    )
    if SQLCODE '= 0 {
        w !,"Error code;",SQLCODE 
    } else {
        for n = 1 : 1 : $ll(namelist) {
            w !,"element ",n,": ",$li(namelist ,n)
        }
    }
}
DHC-APP>d ##class(PHA.TEST.SQLFunction).ListFromString()

element 1: Deborah
element 2: Noah
element 3: Martha
element 4: Bowie

以下嵌入式 SQL 示例使用默认分隔符(逗号字符),并创建一个列表:

/// d ##class(PHA.TEST.SQLFunction).ListFromString1()
ClassMethod ListFromString1()
{
    s names = "Deborah, Noah ,Martha, Bowie"
    &sql(
        SELECT $LISTFROMSTRING(:names)
            INTO :namelist
    )
    if SQLCODE = 0 {
        for n = 1 : 1 : $ll(namelist) {
            w !,"element ",n,": ",$li(namelist ,n)
        }
    } else {
        w !,"Error code;",SQLCODE  
    }
}
DHC-APP> d ##class(PHA.TEST.SQLFunction).ListFromString1()

element 1: Deborah
element 2:  Noah
element 3: Martha
element 4:  Bowie
0
0 11
讨论 (0)1
登录或注册以继续