1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42
|
%macro mp_exploze (mv_tabin=work.Told, mv_var=L1, mv_values=b c d);
DATA
%do i = 1 %TO 1+%sysfunc(countc(&mv_values," ")) ;
work.T&i
%end ;
work.Tautresvaleurs /* Jamais trop prudent ! */
;
SET &mv_tabin ;
SELECT (&mv_var) ;
%do i = 1 %TO 1+%sysfunc(countc(&mv_values," ")) ;
when (%scan(&mv_values,&i," ")) output work.T&i ;
%end ;
otherwise output work.Tautresvaleurs ;
end ;
/* Test : %mp_exploze() ; */
RUN ;
%mend mp_exploze ;
message :
NOTE: Valeurs alphanumériques converties en valeurs numériques aux positions indiquées par : (Ligne):(Colonne).
1:1 1:1 1:1
NOTE: Variable b non initialisée.
NOTE: Variable c non initialisée.
NOTE: Variable d non initialisée.
NOTE: Données numériques incorrectes, 'b' , dans ligne 1 colonne 1.
L1=b L2=1 L3=j b=. c=. d=. _ERROR_=1 _N_=1
NOTE: Données numériques incorrectes, 'c' , dans ligne 1 colonne 1.
L1=c L2=1 L3=k b=. c=. d=. _ERROR_=1 _N_=2
NOTE: Données numériques incorrectes, 'c' , dans ligne 1 colonne 1.
L1=c L2=2 L3=l b=. c=. d=. _ERROR_=1 _N_=3
NOTE: Données numériques incorrectes, 'd' , dans ligne 1 colonne 1.
L1=d L2=2 L3=m b=. c=. d=. _ERROR_=1 _N_=4
NOTE: Données numériques incorrectes, 'd' , dans ligne 1 colonne 1.
L1=d L2=3 L3=n b=. c=. d=. _ERROR_=1 _N_=5
NOTE: Données numériques incorrectes, 'd' , dans ligne 1 colonne 1.
L1=d L2=3 L3=u b=. c=. d=. _ERROR_=1 _N_=6
NOTE: 6 observations copiées de la table WORK.TOLD.
NOTE: La table WORK.T1 a 6 observations et 6 variables.
NOTE: La table WORK.T2 a 0 observations et 6 variables.
NOTE: La table WORK.T3 a 0 observations et 6 variables.
NOTE: La table WORK.TAUTRESVALEURS a 0 observations et 6 variables. |
Partager