SQLプロシジャにより生成された値をマクロ変数に割り当てます。
| 種類: | SELECTステートメント、SQLプロシジャ |
作成または更新するマクロ変数を1つ以上指定します。各マクロ変数名の先頭にはコロン(:)を付けます。マクロ変数は、次の形式で指定できます。
1つまたは複数のマクロ変数を指定します。値がマクロ変数に保存される際に、値の先頭および末尾にある空白は削除されません。
select style, sqfeet into :type, :size from sasuser.houses;
マクロ変数の番号付きリストを指定します。値がマクロ変数に保存される際に、値の先頭および末尾にある空白は削除されます。先頭および末尾の空白を削除したくない場合、NOTRIMオプションを使用します。NOTRIMオプションは、この形式のINTO句に含まれる各要素に対して個々に適用されます。すなわち、同オプションは1つの要素に対してのみ適用され、それ以外の要素には適用されません。
select style, sqfeet into :type1 - :type4 notrim, :size1 - :size3 from sasuser.houses;
1つの列のすべての値を含む1つのマクロ変数を指定します。このリスト内の値は、1つまたは複数の
select distinct style into :types separated by ',' from sasuser.houses;
proc sql noprint;
select style, sqfeet
into :type, :size
from sasuser.houses;
%let type=&type;
%let size=&size;
%put The first row contains a &type with &size square feet.;The first row contains a RANCH with 1250 square feet.
proc sql noprint;
select style, sqfeet
into :type1 - :type4 notrim, :size1 - :size4
from sasuser.houses;
%macro putit;
%do i=1 %to 4;
%put Row&i: Type=**&&type&i** Size=**&&size&i**;
%end;
%mend putit;
%putitRow1:Type=**RANCH ** Size=**1250** Row2:Type=**SPLIT ** Size=**1190** Row3:Type=**CONDO ** Size=**1400** Row4:Type=**TWOSTORY** Size=**1810**
proc sql;
select distinct quote(style)
into :types separated by ', '
from sasuser.houses;
%put Types of houses=&types.;Types of houses=CONDO, RANCH, SPLIT, TWOSTORY