Bonjour,
j'aimerais savoir si en utilisant where dans le corps d'une procédure, la table SAS utilisée par la procédure était modifiée ? Pour moi oui mais la table initiale est censée toujours exister non ?
Merci par avance
Kaz
Bonjour,
j'aimerais savoir si en utilisant where dans le corps d'une procédure, la table SAS utilisée par la procédure était modifiée ? Pour moi oui mais la table initiale est censée toujours exister non ?
Merci par avance
Kaz
Bonjour,
Le WHERE SAS est un filtre concernant les données lues et n'affecte pas la table elle-même...
Dans l'exemple ci-dessous les statistiques ne concernent que la population féminine, la table sashelp.class existe toujours après la procédure...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 proc freq data=sashelp.class (where = (sex='F')) ; /* Paramètre de lecture */ run ;Bon courage !
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 proc freq data=sashelp.class ; where sex = 'F' ; /* Instruction */ run ;
Une seule exception à la grande vérité énoncée par Bruno : si la procédure a la même table en entrée et en sortie. Une proc Sort sans OUT=, une proc Transpose avec la même table en DATA et en OUT, etc. Mais sinon, le WHERE n'agit que pendant la procédure, sans modifier physiquement la table lue.
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager