文字列操作 (SQL)
概要
InterSystems SQL では、以下の複数のタイプの文字列操作をサポートします。
-
文字列は、長さ、文字の位置、または部分文字列値により操作できます。
-
文字列は、指定の区切り文字または区切り文字列により操作できます。
-
文字列は、パターン・マッチングと単語認識検索によりテストできます。
-
リストと呼ばれる特別にエンコードされた文字列には、区切り文字を使用しない埋め込み部分文字列識別子が含まれます。さまざまな $LIST 関数は、これらのエンコードされた文字列を操作します。この文字列は、標準の文字列とは互換性がありません。唯一の例外は、$LISTGET 関数と、引数が 1 つおよび 2 つの形式の $LIST 関数です。これらの関数は、入力としてエンコードされた文字の文字列を受け取り、単一要素値を標準文字の文字列として出力します。
InterSystems SQL は、文字列関数、文字列条件式、および文字列演算子をサポートします。
ObjectScript の文字列操作では、大文字と小文字が区別されます。文字列の文字は、大文字や小文字に変換するか、または両方を混在させて保持することができます。文字列照合では大文字と小文字が区別されるようにすることもでき、区別されないようにすることもできます。既定では、SQL 文字列照合は、大文字と小文字が区別されない SQLUPPER です。InterSystems SQL は、さまざまな大文字/小文字、照合関数、および演算子を提供しています。
文字列が数値引数に対して指定される場合、ほとんどの InterSystems SQL 関数は、以下の文字列から数値への変換を実行します。数値以外の文字列は 0 に変換されます。数値文字列はキャノニック形式の数値に変換されます。混合数値文字列は最初の非数値文字で切り捨てられ、キャノニック形式の数値に変換されます。
文字列連結
以下の関数は部分文字列を単一の文字列に連結します。
-
CONCAT : 2 つの部分文字列を連結して、単一の文字列を返します。
-
STRING : 2 つ以上の部分文字列を連結して、単一の文字列を返します。
-
LIST : コンマ区切りを含む列内のすべての値を連結して、単一の文字列を返します。詳細は、"集約関数" を参照してください。
連結演算子 (||) も、2 つの文字列を連結するために使用できます。
文字列の長さ
以下の関数は文字列の長さを決定するために使用できます。
-
CHARACTER_LENGTH および CHAR_LENGTH : 末尾の空白を含む、文字列の文字数を返します。NULL は NULL を返します。
-
LENGTH : 末尾の空白を除く、文字列の文字数を返します。NULL は NULL を返します。
-
$LENGTH : 末尾の空白を含む、文字列の文字数を返します。NULL は 0 として返されます。
トランケーションとトリミング
以下の関数は文字列を切り捨てるか削除するために使用できます。トランケーションは、文字列の長さを制限し、指定された長さを超えるすべての文字を削除します。トリミングは、先頭および/または末尾の空白を文字列から削除します。
部分文字列検索
以下の関数では、文字列内の部分文字列を検索してその位置を返します。
-
POSITION : 部分文字列値による検索を実行し、最初の一致を見つけて、部分文字列の最初の位置を返します。
-
CHARINDEX : 部分文字列値による検索を実行し、最初の一致を見つけて、部分文字列の最初の位置を返します。開始位置を指定できます。
-
$FIND : 部分文字列値による検索を実行し、最初の一致を見つけて、部分文字列の最後の位置を返します。開始位置を指定できます。
-
INSTR : 部分文字列値による検索を実行し、最初の一致を見つけて、部分文字列の最初の位置を返します。開始位置、およびそこから数えて何個目の部分文字列かを指定できます。
以下の関数では、文字列内の位置または区切り文字を指定して部分文字列を検索し、その部分文字列を返します。
-
$EXTRACT : 文字列位置による検索を実行し、開始位置によって指定されたか、開始位置と終了位置によって指定された部分文字列を返します。文字列の最初から検索します。
-
SUBSTRING : 文字列位置による検索を実行し、開始位置によって指定されたか、開始位置と長さによって指定された部分文字列を返します。文字列の最初から検索します。
-
SUBSTR : 文字列位置による検索を実行し、開始位置によって指定されたか、開始位置と長さによって指定された部分文字列を返します。文字列の最初または最後から検索します。
-
$PIECE : 区切り文字による検索を実行し、最初の区切られた部分文字列を返します。開始地点を指定するか、既定を文字列の最初に設定できます。
-
$LENGTH : 区切り文字による検索を実行し、区切られた部分文字列の数を返します。文字列の最初から検索します。
-
$LIST : 特別にエンコードされたリスト文字列の部分文字列のカウントによる検索を実行します。文字列のカウントにより部分文字列を検索し、部分文字列の値を返します。文字列の最初から検索します。
包含関係演算子 ([) は、部分文字列が単一の文字列に表示されるかどうかを調べるために使用することもできます。
%STARTSWITH 比較演算子は、指定した文字を、文字列の先頭とマッチングします。
部分文字列の検索と置換
以下の関数は、文字列内の部分文字列を検索し、それを別の部分文字列と置き換えます。
文字タイプと単語認識比較
%PATTERN 比較演算子は、文字列を指定の文字タイプのパターンとマッチングします。
ワイルドカード検索を含む、指定された単語や語句の文字列の単語認識検索を実行できます。詳細は、"InterSystems SQL Search の使用法" を参照してください。