2017年9月19日火曜日

【LENGTH/LENGTHN関数】文字値が何バイトか返す




「LENGTH関数」「LENGTHN関数」の構文と、挙動の違いを紹介します。



構文


    LENGTH(  文字値または文字変数   )
    LENGTHN(  文字値または文字変数   )


      文字値の指定例: length( "abc" )
      文字変数の指定例: length( VAR1 )



  • 「文字値」または「文字変数の格納値」から末尾の半角スペースを除いたうえで、値が何バイトかを返す
  • 「文字値」または「文字変数の格納値」が欠損値の場合、返される値は以下の通り
    • LENGTH関数 = 1
    • LENGTHN関数 = 0




*** Sample data ;
data DT1;
    length X $10.;
    X="abc"; output;
    X=""; output;
run;







*** length, lengthn関数を使う ;
data DT2;
    set DT1;
    LEN   = length(X);
    LENN = lengthn(X);
run;

上の例では、Xが欠損値の時に関数の結果が異なっています。
この挙動を理解していないと、プログラマが意図しない結果になってしまいます。


0 件のコメント:

コメントを投稿