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?

SUBSTR

指定された文字列式から得られた部分文字列を返す文字列関数です。

Synopsis

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

引数

string-expression 部分文字列が得られる文字式。式は列の名前や文字リテラル、または他のスカラ関数の結果を指定できます。基本となるデータ型は、任意の文字タイプ (CHAR や VARCHAR など) とすることができます。
start string-expression 内で、部分文字列が開始される場所を指定する整数。正の数の開始位置は、文字列の最初からの文字数を指定します。string-expression1 の最初の文字はポジション 1 にあります。負の数の開始位置は、文字列の最後からの文字数を指定します。start が 0 (ゼロ) の場合は 1 として扱います。
length オプション — 返される部分文字列の長さを指定する正の整数。この値は、部分文字列が開始位置から右に length の文字数を進んで終了することを指定します。省略された場合、部分文字列は start から string-expression の最後まで進みます。length が 0 または負の数の場合、Caché は NULL を返します。

概要

start は負の数になる場合もあるので、元の文字列の先頭または末尾のいずれからでも部分文字列を取得できます。

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

  • start が 0、-0、または 1 の場合、返される部分文字列は、その文字列の最初の文字で始まります。

  • start が負の数である場合、返される部分文字列の先頭が、その文字列の末尾からこの文字数分の位置になります。-1 は文字列の最終文字を表します。負の数が大きく、文字列の末尾から逆向きに数えた値が文字列の先頭よりも前の位置になる場合、返される部分文字列の先頭は、文字列の最初の文字になります。

  • start が文字列の範囲を超えていると、NULL が返されます。

  • length が文字列内の残りすべての文字より長い場合、start から文字列の最後までの部分文字列が返されます。

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

  • start または length のいずれかが NULL の場合、NULL が返されます。

SUBSTR をストリーム・データと共に使用することはできません。string-expression がストリーム・フィールドの場合、SUBSTR は SQLCODE -37 を発行します。SUBSTRING を使用して、ストリーム・データから部分文字列を抽出します。

SUBSTR は、Oracle に対する互換性がサポートされています。

以下の例は、3 番目の文字 (C) から文字列の最後までを指定するので、部分文字列 CDEFG を返します。

SELECT SUBSTR('ABCDEFG',3) AS Sub

以下の例は、3 番目の文字 (C) から 4 文字分 (F まで) の部分文字列を指定するので、部分文字列 CDEF を返します。

SELECT SUBSTR('ABCDEFG',3,4) AS Sub

以下の例は、Caché が、まず元の文字列の末尾から逆方向に 5 文字をカウントし、そこから 4 文字分を返すように指定しているので、CDEF を返します。

SELECT SUBSTR('ABCDEFG',-5,4) AS Sub

関連項目

FeedbackOpens in a new tab