RIGHT または スカラー関数 STRRIGHT

RIGHT 関数は、あるストリングから、指定された数の右端のバイトまたは指定されたストリング単位からなるストリングを戻します。

構文図を読むビジュアルシンタックスダイアグラムをスキップするRIGHTSTRRIGHT1( 文字列式, 整数,CODEUNITS16CODEUNITS32OCTETS)
注:
  • 1 FL 506 STRRIGHT は、RIGHT 関数で新たにサポートされた名前です。

スキーマは SYSIBM です。

文字列式
結果を取り出すストリングを指定する式。 このストリングは任意の組み込みストリング・データ・タイプでなければなりません。 string-expression のサブストリングとは、string-expression の 0 個以上の連続したコード・ポイントのことです。 式に含まれる部分サロゲート文字は、ブランクに置き換えられます。

ストリングには混合データが入っていてもかまいません。 この関数の評価に指定する単位によっては、その結果は必ず しも正しく形成された混合データの文字ストリングであると限りません。

引数を数値データ・タイプにすることもできます。 数値引数は、暗黙的に VARCHAR データ・タイプにキャストされます。

整数
結果の長さを指定する式。 この値は 0 から n の整数 (nstring-expression の長さ属性) であり、暗黙的または明示的に指定し た単位で表現される必要があります。

引数を、文字ストリングまたはグラフィック・ストリングのデータ・タイプにすることもできます。 ストリング入力は、暗黙的に DECFLOAT(34) の数値にキャストされ、その後 INTEGER 値に割り当てられます。

CODEUNITS16 または CODEUNITS32 が指定されている場合、結果文字列の長さ属性を計算する方法については、「最終結果の長さ属性の決定」を参照してください。

CODEUNITS16、CODEUNITS32、または OCTETS
integer を表すのに使用する単位を指定します。 string-expression がビット・データとして定義された文字ストリング の場合は、CODEUNITS16 および CODEUNITS32 は指定できません。 string-expression がグラフィック・ストリングの場合は、OCTETS は 指定できません。 string-expression がバイナリー・ストリングの場合は、CODEUNITS16、CODEUNITS32、および OCTETS は指定できません。
CODEUNITS16
integer が、16 ビットの UTF-16 コード単位の形で表現されるこ とを指定します。
CODEUNITS32
integer が、32 ビットの UTF-32 コード単位の形で表現されるこ とを指定します。
OCTETS
integer が、バイトの形で表現されることを指定します。

CODEUNITS16、 CODEUNITS32、OCTETSの詳細については、 文字列単位仕様を参照してください。

string-expression の指定されたサブストリングが必ず存在する ように、実際上は string-expression の右側に必要な数の埋め込み文字が埋め込まれます。 データのコード化スキームによって、埋め込み文字が決まります。

  • ASCII SBCS データまたは ASCII MIXED データの場合、 埋め込み文字は X'20' になります。
  • ASCII DBCS データの場合、埋め込み文字は CCSID によって決まります。例えば、 日本語 (CCSID 301) の埋め込み文字は X'8140' であり、中国語 (簡体字) の 埋め込み文字は X'A1A1' です。
  • EBCDIC SBCS データまたは EBCDIC MIXED データの場合、 埋め込み文字は X'40' になります。
  • EBCDIC DBCS データの場合、埋め込み文字は X'4040' になります。
  • Unicode SBCS データまたは UTF-8 データ (Unicode 混合データ) の 場合、埋め込み文字は X'20' です。
  • UTF-16 データ (Unicode DBCS データ) の場合、 埋め込み文字は X'0020' です。
  • 2 進データの場合、埋め込み文字は X'00' になります。

関数の結果は、長さ属性が string-expression の長さ属性と同じで、 データ・タイプが string-expression のデータ・タイプに依存する、可変長ストリングです。

  • string-expression が BINARY または VARBINARY の場合は VARBINARY
  • string-expression が CHAR または VARCHAR であれば VARCHAR
  • string-expression が CLOB であれば CLOB
  • string-expression が GRAPHIC または VARGRAPHIC であれば VARGRAPHIC
  • string-expression が DBCLOB であれば DBCLOB
  • string-expression が BLOB の場合は BLOB

結果の実際の長さは integer から決定されます。

結果は NULL 値になることがあります。いずれかの引数が NULL 値である場合、結果は NULL 値になります。

結果の CCSID は string-expression の CCSID と同じです。

変更の開始

代替構文:
FL 506 STRRIGHT はRIGHTと同義語です。
変更の終わり

例 1: ホスト変数 ALPHA の値が「ABCDEF」である とします。 次のステートメントは、ALPHA の右端の 3 文字である値「DEF」を戻します。
   SELECT RIGHT(ALPHA,3)
     FROM SYSIBM.SYSDUMMY1;
例 2: 以下のステートメントは長さがゼロの ストリングを戻します。
   SELECT RIGHT('ABCABC',0)
     FROM SYSIBM.SYSDUMMY1;
例 3: FIRSTNME は表 T1 内の VARCHAR(12) の列です。 FIRSTNME が 6 文字のストリング「Jürgen」を値として持つ場合:
   Function ...                         Returns ...
   RIGHT(FIRSTNME,5,CODEUNITS32)        'ürgen'  -- x'C3BC7267656E'
   RIGHT(FIRSTNME,5,CODEUNITS16)        'ürgen'  -- x'C3BC7267656E'
   RIGHT(FIRSTNME,5,OCTETS)             ' rgen'  -- x'207267656E'  A truncated string
変更の開始例4: 以下の例では、RIGHT関数の最後の呼び出しが部分サロゲート文字を返します
   Function ...                         Returns ...
   RIGHT('Jürgen',5,CODEUNITS32)        'ürgen'       -- x'C3BC7267656E'
   RIGHT('Jürgen',5,CODEUNITS16)        'ürgen'       -- x'C3BC7267656E'
   RIGHT('Jürgen',5,OCTETS)             ' rgen'       -- x'207267656E'  A truncated string
   HEX(RIGHT('Jürgen',5))               x'BC7267656E' -- A partial character followed by 'rgen'
変更の終わり