SAS : Comment utiliser UPDATE dans PROC SQL
Vous pouvez utiliser l’instruction UPDATE dans PROC SQL dans SAS pour mettre à jour les valeurs dans une ou plusieurs colonnes de l’ensemble de données.
Voici les manières les plus courantes d’utiliser l’instruction UPDATE en pratique :
Méthode 1 : mettre à jour les valeurs dans la colonne en fonction d’une condition
proc sql;
update my_data
set var1='new_value'
where var1='old_value';
quit;
Méthode 2 : mettre à jour les valeurs dans la colonne en fonction de plusieurs conditions
proc sql;
update my_data
set var1 =
case when var1>25 then 100
when var1>20 then 50
else 0
end;
quit;
Les exemples suivants montrent comment utiliser chaque méthode en pratique avec l’ensemble de données suivant dans SAS :
/*create dataset*/
data my_data;
input team $ position $ points;
datalines;
A Guard 22
A Guard 20
A Guard 30
A Forward 14
A Forward 11
B Guard 12
B Guard 22
B Forward 30
B Forward 9
B Forward 12
B Forward 25
;
run;
/*view dataset*/
proc print data=my_data;
Exemple 1 : mettre à jour les valeurs dans la colonne en fonction d’une condition
Nous pouvons utiliser l’instruction UPDATE suivante dans PROC SQL pour mettre à jour chacune des valeurs de la colonne d’équipe pour qu’elles soient « Atlanta », où les valeurs existantes sont égales à « A » :
/*update values in team column where team is equal to 'A'*/
proc sql;
update my_data
set team='Atlanta'
where team='A';
quit;
/*view updated dataset*/
proc print data=my_data;
Notez que chaque valeur de la colonne d’équipe qui était auparavant égale à « A » est désormais égale à « Atlanta ».
Toutes les valeurs qui n’étaient pas égales à « A » dans la colonne de l’équipe étaient simplement laissées inchangées.
Exemple 2 : mettre à jour les valeurs dans la colonne en fonction de plusieurs conditions
Nous pouvons utiliser l’instruction UPDATE suivante dans PROC SQL pour mettre à jour chacune des valeurs de la colonne de points en fonction de plusieurs conditions :
/*update values in points column based on multiple conditions*/
proc sql;
update my_data
set points =
case when points>25 then 100
when points>20 then 50
else 0
end;
quit;
/*view updated dataset*/
proc print data=my_data;
Nous avons utilisé l’instruction UPDATE avec une instruction CASE WHEN pour mettre à jour les valeurs dans la colonne des points.
En particulier:
- Si la valeur existante dans la colonne des points était supérieure à 25, nous la mettons à jour à 100 .
- Sinon, si la valeur existante dans la colonne des points était supérieure à 20, nous la mettions à jour à 50 .
- Sinon, nous avons mis à jour la valeur dans la colonne des points pour qu’elle soit 0 .
Notez que nous n’avons utilisé que trois conditions dans l’instruction CASE WHEN , mais vous pouvez utiliser autant de conditions que vous le souhaitez.
Ressources additionnelles
Les didacticiels suivants expliquent comment effectuer d’autres tâches courantes dans SAS :
SAS : Comment utiliser l’opérateur LIKE dans PROC SQL
SAS : Comment utiliser l’opérateur IN dans PROC SQL
SAS : Comment utiliser l’opérateur WHERE dans PROC SQL