Skip to main content

This is documentation for Caché & Ensemble. See the InterSystems IRIS version of this content.Opens in a new tab

For information on migrating to InterSystems IRISOpens in a new tab, see Why Migrate to InterSystems IRIS?

$LISTTOSTRING

リストから文字列を作成するリスト関数。

Synopsis

$LISTTOSTRING(list[,delimiter])

引数

list 有効なリストとして評価される式。list は、1 つ以上の要素を含むエンコードされた文字列です。list を作成するには、SQL または ObjectScript の $LISTBUILD 関数または $LISTFROMSTRING 関数を使用します。既存のリストから list を抽出するには、SQL または ObjectScript の $LIST 関数を使用します。
delimiter オプション — 部分文字列の区切りとして挿入される区切り文字。区切り文字は引用符付きの文字列として指定された 1 文字以上の文字列です。区切り文字を使用しないで部分文字列を連結するには、空文字列 ('') を指定します。delimiter を指定しない場合、既定はコンマ (,) です。

説明

$LISTTOSTRING は Caché リストを受け取り、それを文字列に変換します。結果の文字列では、リスト内の要素は delimiter によって区切られます。

リストは、区切り文字列を使用しないエンコード形式でデータを表します。したがって、リストには可能な文字をすべて含めることができますが、ビット文字列データに最適です。$LISTTOSTRING は、このリストを区切られた要素を持つ 1 つの文字列に変換します。また、指定された文字 (または文字列) を区切り文字として設定します。これらの区切られた要素は、$PIECE 関数を使用して処理できます。

Note:

ここで指定する delimiter は、ソース・データに含まれる文字であってはいけません。Caché は、区切り文字の役割を果たす文字と、データ文字としての同じ文字を区別しません。

$LISTTOSTRING を使用すると、区切り文字列として、シリアル・コンテナ・フィールドからフィールド値を取得できます。以下の例では、Home はシリアル・コンテナ・フィールドです。それには、リスト要素 Home_Street、Home_City、Home_State、および Home_Zip が含まれています。

SELECT Name,$LISTTOSTRING(Home,'^') AS HomeAddress
FROM Sample.Person

引数

list

1 つ以上の要素を含む、エンコードされた文字の文字列。リストは、SQL $LISTBUILD 関数または ObjectScript $LISTBUILD 関数を使用して作成できます。区切り文字列からリストへの変換は、SQL $LISTFROMSTRING 関数または ObjectScript $LISTFROMSTRING 関数を使用して行うことができます。既存のリストからのリストの抽出は、SQL $LIST 関数または ObjectScript $LIST 関数を使用して行うことができます。

list 引数の式が有効なリストとして評価されない場合は、SQLCODE -400 エラーが発生します。

delimiter

出力文字列内の部分文字列を区切るのに使用される文字 (または文字列)。(一重引用符で囲まれた) 数値または文字列リテラル、ホスト変数、あるいは文字列として評価される式を指定できます。

通常、区切り文字には、文字列データ内で決して使用されることがなく、部分文字列を区切る文字としてのみ使用する特定の文字を設定します。区切り文字には、複数文字から成る文字列を指定することもできますが、それを構成する個々の文字は文字列データ内で使用できます。

delimiter を指定しない場合、既定の区切り文字はコンマ (,) です。NULL 文字列 ('') は区切り文字として指定可能ですが、この場合は、部分文字列が区切り文字なしで連結されます。一重引用符を区切り文字として指定するには、引用符を二重に指定します ('''' — 4 つの一重引用符を使用します)。

以下の例は、リスト・フィールドの値を、要素がコロン (:) 文字で区切られた文字列に変換します。

SELECT
Name,
FavoriteColors AS ColorList,
$LISTTOSTRING(FavoriteColors,':') AS ColorStrings
FROM Sample.Person
WHERE FavoriteColors IS NOT NULL

関連項目

FeedbackOpens in a new tab