前のページ|次のページ

%UPCASE関数と%QUPCASE関数

値を大文字に変換します。

種類: マクロ関数
参照項目: %LOWCASE自動呼び出しマクロと%QLOWCASE自動呼び出しマクロ%NRBQUOTE関数、および %QLOWCASE自動呼び出しマクロ

構文

%UPCASE(character-string | text-expression)
%QUPCASE(character-string | text-expression)

詳細

%UPCASE関数および%QUPCASE関数は、引数に含まれている小文字を大文字に変換します。%UPCASE関数は、引数がそれまでマクロクォーティング関数によりマスクされていた場合であっても、同関数が返す結果内で特殊文字やニーモニック演算子をマスクしません。
次に示すような特殊文字やニーモニック演算子が引数に含まれている場合、%QUPCASEを使用します。%QUPCASE関数は、結果に含まれる次の特殊文字とニーモニック演算子をマスクします。
& % ' " ( ) + − * / < > = ¬ ^ ~ ; , # blank
AND OR NOT EQ NE LE LT GE GT IN
%UPCASE関数と%QUPCASE関数は、文字値を比較する場合に役立ちます。マクロ機能は、文字値を比較する前に小文字から大文字への変換を自動的に行わないためです。

比較

  • %QUPCASE関数は、%NRBQUOTE関数と同じ文字をマスクします。
  • 文字を小文字に変換するには、%LOWCASEまたは%QLOWCASE自動呼び出しマクロを使用します。

例1: 比較する値を大文字に変換する

次に示すマクロRUNREPTは、マクロ変数MONTHに入力された値を文字列DECと比較します。大文字化した値がDECに等しい場合、REPORTS.ENDYEARという名前のデータセットに関してFSVIEWプロシジャを実行します。それ以外の場合、REPORTSデータライブラリ内の対応する月名を持つデータセットに関してFSVIEWプロシジャを実行します。
%macro runrept(month);
   %if %upcase(&month)=DEC %then
       %str(proc fsview data=reports.endyear; run;);
   %else %str(proc fsview data=reports.&month; run;);
%mend runrept;
このマクロを次のどの形式で呼び出した場合でも、同マクロ内の%IF条件がtrueになります。
%runrept(DEC)
%runrept(Dec)
%runrept(dec)

例2: %UPCASE関数と%QUPCASE関数の比較

次のステートメントは、%UPCASE関数と%QUPCASE関数により生成される結果を比較するものです。
%let a=begin;
%let b=%nrstr(&a);
%put UPCASE produces: %upcase(&b);
%put QUPCASE produces: %qupcase(&b);
これらのステートメントを実行すると、次のメッセージがSASログに書き込まれます。
UPCASE produces:begin QUPCASE produces:&A
前のページ|次のページ|ページの先頭へ