文字通り、文字列の長さを返す関数です。
LENGTH (第1引数)
のように、文字列(文字変数)を引数で与えます。
では、文字列(文字変数)がブランクのときは、どのような結果を返すと思いますか?
以下のような場合です。
data _NULL_ ;
x = "A" ;
y = "" ;
len_x = length (x) ;
len_y = length (y) ;
put len_x = ;
put len_y = ;
run ;
V8以降ではこの結果は同じになります。
ブランクも1として数えられていますね。
実は、V6ではブランクは0として返してくれたそうです。
(V6の環境がないので結果をお見せることができませんが・・・)
そして、V9では(V8、V6と行ったり来たりですみません)、上記のような違いを区別してくれる関数が加わりました。
LENGTHN関数 です。
構文は至ってシンプルです。
LENGTHN (第1引数)
早速、実行してみましょう。
data _NULL_ ;
x = "A" ;
y = "" ;
len_x_n = lengthn (x) ;
len_y_n = lengthn (y) ;
put len_x_n = ;
put len_y_n = ;
run ;
ちゃんと、ブランクの場合に0が返ってきましたね。
ちなみに、LENGTHC関数 というのも加わりまして、
動きは下記のとおりです。
data _NULL_ ;
x = "A " ; * Aの後ろに半角スペースが3つ入っています ;
len_x = length(x) ;
len_x_c = lengthc(x) ;
put len_x = ;
put len_x_c = ;
run ;
文字列(文字変数)の後続ブランクも含めた結果を返してくれるようです。
以上。LENGTH関数 とそれに関連したモノを紹介しました。
0 件のコメント:
コメントを投稿