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?

SUBSTRING

より大きい文字列から部分文字列を返す文字列関数です。

Synopsis

SUBSTRING(string-expression,start[,length])

SUBSTRING(string-expression FROM start [FOR length])

{fn SUBSTRING(string-expression,start[,length])}

引数

string-expression 部分文字列が得られる文字式。列の名前、文字列リテラル、他のスカラ関数の結果などを表すことができる式。基本となるデータ型は (CHAR や VARCHAR など) 任意の文字タイプ、数値、またはデータ・ストリームとすることができます。
start string-expression 内で、部分文字列が開始する場所を指定する整数。string-expression の最初の文字はポジション 1 です。開始位置が文字列の長さ以上である場合、SUBSTRING は空文字列 ('') を返します。開始位置が 1 以下である場合 (ゼロまたは負の数)、部分文字列はポジション 1 で開始しますが、部分文字列の length は開始位置により削減されます。
length オプション — 返される部分文字列の長さを指定する整数。length を指定しない場合、既定で残りの文字列が返されます。

概要

start の値は、部分文字列の開始ポイントを管理します。

  • start が 1 未満の場合、length の値は対応する量によってディクリメントされます。したがって、start が 0 の場合、length の値は 1 まで減少します。start が -1 の場合、length の値は 2 まで減少します。

length の値は、部分文字列のサイズを管理します。

  • length が正の値の場合 (1 以上)、部分文字列は開始位置から右に向かって length 文字数まで進んで終わります (この有効な長さは、start の数が 1 より小さいと減少する場合もあります)。

  • length が、文字列内の残りの文字より長い場合、string-expression の開始位置の右側から最後までのすべての文字を返します。

  • length が 0 未満の場合、NULL が返されます。

  • length が負の数の場合、Caché は SQLCODE -140 エラーを発行します。

SUBSTRING に引数として渡される浮動小数点は、小数部を切り捨てることにより、整数に変換されます。

SUBSTRING は、部分文字列を文字列の最初の部分から抽出します。SUBSTR は、部分文字列を文字列の最初の部分または最後の部分のいずれかから抽出できます。これらの 2 つの SQL 関数は引数値をそれぞれ処理します。SUBSTRING文字ストリーム・データと共に使用できますが、SUBSTR はストリーム・データと共に使用できません。

SUBSTRING は、ODBC スカラ関数 ({ } 括弧構文) や SQL 汎用関数として使用されます。

返り値

すべての SUBSTRING 引数の値が NULL の場合、SUBSTRING は NULL を返します。

string-expression が %String データ型の場合は、SUBSTRING の返り値は、string-expression データ型と同じデータ型になります。これにより、SUBSTRING でユーザ定義の文字列データ型を、特殊なエンコードを使用して処理できるようになります。

string-expression が %String データ型でない場合 (%Float など)、SUBSTRING の返り値は %String になります。

以下の例は、"forward" 文字列を返します。

SELECT {fn SUBSTRING( 'forward pass',1,7 )} AS SubText

以下の例は、"pass" 文字列を返します。

SELECT {fn SUBSTRING( 'forward pass',9,4 )} AS SubText

以下の例は、各名前の最初の 4 文字を返します。

SELECT Name,SUBSTRING(Name,1,4) AS FirstFour
FROM Sample.Person

以下の例は、SUBSTRING の他の構文形式を示しています。この例は、機能的に以前の例と同じです。

SELECT Name,SUBSTRING(Name FROM 1 FOR 4) AS FirstFour
FROM Sample.Person

以下の例では、length が 1 より小さい start の値によってどのように減少するかを示しています (0 の start 値は length を 1 減らし、-1 の start 値は length を 2 減らす、というようになります)。この場合、length は 3 減らされるため、1 つの文字 (“A”) だけが返されます。

SELECT {fn SUBSTRING( 'ABCDEFG',-2,4 )} AS SubText

関連項目

FeedbackOpens in a new tab