2019年4月23日火曜日

文字列を抽出するSUBSTRN関数





文字列から指定した位置の文字列を抽出する「SUBSTRN関数」と「KSUBSTRN関数」を紹介したいと思います。




SUBSTRN関数



構文
SUBSTRN( Variable, Start, Length )


Variable … 対象変数 or 対象文字
Start      … 何バイト目から抽出を開始するか
Length   … 抽出するバイト数(省略するとStart以降のすべての文字が抽出される)

  • Start と Length は「バイト数」で指定。
  • シングルバイト文字専用の関数です。日本語などのマルチバイト文字には対応していません。



例.
data test;
input x:$50.;
cards;
Orange
SAS
;

data out1;
    set test;
    length y1 y2 $50.;
    y1 = substrn( x, 2, 3 );
    y2 = substrn( x, 2 );
run;
;
  X
  Y1  
  Y2  
 Orange ran  range 
 SAS  AS  AS



KSUBSTRN関数



構文
KSUBSTRN( VariableStartLength )


Variable … 対象変数 or 対象文字
Start      … 何文字目から抽出を開始するか
Length   … 抽出する文字数(省略するとStart以降のすべての文字が抽出される)

  • Start と Length は「文字数」で指定(たとえば半角の「a」も全角の「A」も1文字でカウント)
  • 日本語などのマルチバイト文字に対応しています。


例.
data test2;
input x:$50.;
cards;
あいうえお
abcde
;

data out2;
    set test2;
    length y1 y2 $50.;
    y1 = ksubstrn( x, 2, 3 );
    y2 = ksubstrn( x, 2 );
run;

  X
  Y1  
  Y2  
 あいうえお いうえ いうえお 
 abcde bcd bcde




See also

SUBSTR vs SUBSTRN



0 件のコメント:

コメントを投稿