-2
votes

Proc sql sas basique

Je veux une réponse pour cela.

L'entrée que j'ai est: xxx

la sortie que je veux est la suivante: xxx

Comment imprimer la sortie dans ce format (c.-à-d. à l'envers) à l'aide de proc SQL ?


2 commentaires

Nom du SGBD s'il vous plaît


@Zaynulabadintuhin ... < Code> proc sql est un module dans le logiciel SAS et que sa dialecte par défaut est spécifique SAS, principalement ANSI-1992 SQL avec fonctions SAS disponibles.


4 Réponses :


0
votes

Basé sur les informations données et en supposant que toutes vos données sont au même format, vous pouvez modifier la fonction substractionnelle dans ProC SQL

data have;
value='ABC123';
run;

proc sql;
create table want
as
select value, 
       substr(value,4,4)||substr(value,1,3) as new_value
  from have;
quit;

proc print data=want; run;


0 commentaires

0
votes

Vous voudrez probablement utiliser la garniture () pour traiter les espaces de fuite que SAS stocke dans des variables de caractères.

trim(substr(have,4))||substr(have,1,3)


0 commentaires

0
votes

Si vous voulez un algorithme qui fonctionnerait avec des chaînes similaires de toute longueur (tout nombre de lettres suivies d'un nombre quelconque de chiffres), je suggère d'utiliser des expressions régulières pour modifier la chaîne d'entrée.

data test1;
  inStr = "ABCdef12345";
run;

proc sql;
  create table test2 as
  select prxChange("s/([A-z]+)([\d]+)/$2$1/", 1, inStr) as outStr
  from test1;
quit;


0 commentaires

0
votes

base sas contient une fonction inverse qui est dédiée à l'inverser une chaîne, ce qui peut être utilisé à la fois dans proc SQL et dans un magasin de données. Voir exemple dans la documentation SAS < / a> ou ici: xxx

sortie: xxx

etc.


0 commentaires