SUBSTRING - ソース文字列からサブ文字列を抽出

SUBSTRING 関数は、ソース文字列からサブ文字列を抽出します。サブ文字列に指定した終了位置がソース文字列の末尾を超える場合、ソース文字列の最終文字の位置は、サブ文字列の終了位置になります。

ソース文字列からサブ文字列を抽出

SUBSTRING(string, position, length)

説明

string

文字

サブ文字列を抽出する文字列です。この文字列には、フィールド、一重引用符 (') で囲んだリテラル、または変数のいずれかを指定することができます。

position

正の整数

string で指定した文字列内のサブ文字列の開始位置です。

length

整数

サブ文字列の長さ制限値です。サブ文字列の終了位置は、「position + length - 1」で計算されます。計算された位置がソース文字列の末尾を超える場合、string で指定した文字列の最終文字の位置が、サブ文字列の終了位置になります。

返されるサブ文字列のデータタイプは AnV です。

ソース文字列からサブ文字列を抽出

次のリクエストでは、POSITION 関数が LAST_NAME フィールドで最初に出現する文字「I」の位置を特定し、結果を I_IN_NAME フィールドに格納します。次に、SUBSTRING 関数が LAST_NAME フィールドで「I」から始まる 3 文字を抽出し、その結果を I_SUBSTR フィールドに格納します。

TABLE FILE EMPLOYEE
PRINT
COMPUTE
I_IN_NAME/I2 = POSITION('I', LAST_NAME); AND
COMPUTE
I_SUBSTR/A3 =
SUBSTRING(LAST_NAME, I_IN_NAME, I_IN_NAME+2);
BY LAST_NAME
ON TABLE SET PAGE NOPAGE
END

出力結果は次のとおりです。

  LAST_NAME        I_IN_NAME  I_SUBSTR                  
  ---------        ---------  --------                             
  BANNING                  5  ING     
  BLACKWOOD                0  BL      
  CROSS                    0  CR      
  GREENSPAN                0  GR      
  IRVING                   1  IRV     
  JONES                    0  JO      
  MCCOY                    0  MC      
  MCKNIGHT                 5  IGH     
  ROMANS                   0  RO      
  SMITH                    3  ITH     
                           3  ITH     
  STEVENS                  0  ST