<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: macro variable in double quotes in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/macro-variable-in-double-quotes/m-p/363927#M274972</link>
    <description>&lt;P&gt;I think the easiest way to achieve my desired result it just add a %nrstr in namelike and the where statement stays as: where name like "&amp;amp;namelike.". But thank you all the same!&lt;/P&gt;&lt;PRE class=" language-sas"&gt;&lt;CODE class="  language-sas"&gt;&lt;SPAN class="token macroname"&gt;%VARINPUT&lt;/SPAN&gt;&lt;SPAN class="token punctuation"&gt;(&lt;/SPAN&gt;&lt;SPAN class="token procnames"&gt;data&lt;/SPAN&gt;&lt;SPAN class="token operator"&gt;=&lt;/SPAN&gt;test&lt;SPAN class="token punctuation"&gt;,&lt;/SPAN&gt; selectname&lt;SPAN class="token operator"&gt;=&lt;/SPAN&gt;varlist&lt;SPAN class="token punctuation"&gt;,&lt;/SPAN&gt; namelike&lt;SPAN class="token operator"&gt;=&lt;/SPAN&gt;&lt;SPAN class="token macrostatement"&gt;%nrstr&lt;/SPAN&gt;&lt;SPAN class="token punctuation"&gt;(&lt;/SPAN&gt;v&lt;SPAN class="token macroname"&gt;%chfad&lt;/SPAN&gt;&lt;SPAN class="token punctuation"&gt;)&lt;/SPAN&gt;&lt;SPAN class="token punctuation"&gt;)&lt;/SPAN&gt;&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
    <pubDate>Fri, 02 Jun 2017 20:06:09 GMT</pubDate>
    <dc:creator>Heraaaa</dc:creator>
    <dc:date>2017-06-02T20:06:09Z</dc:date>
    <item>
      <title>macro variable in double quotes</title>
      <link>https://communities.sas.com/t5/SAS-Programming/macro-variable-in-double-quotes/m-p/363895#M274970</link>
      <description>&lt;P&gt;Hi all,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I have a question about my codes:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;%macro varinput(data=, selectname= , namelike=);&lt;BR /&gt;proc contents data=&amp;amp;data. out=contents(keep=name) noprint;&lt;BR /&gt;run;&lt;/P&gt;&lt;P&gt;%global &amp;amp;selectname.;&lt;/P&gt;&lt;P&gt;proc sql noprint;&lt;BR /&gt;select name into: &amp;amp;selectname. separated by ' '&lt;BR /&gt;from contents&lt;BR /&gt;&lt;FONT color="#FF0000"&gt;where name like "%nrstr(&amp;amp;namelike.)";&lt;/FONT&gt;&lt;BR /&gt;quit;&lt;/P&gt;&lt;P&gt;%mend varinput;&lt;BR /&gt;%varinput(data=outcome.cvd, selectname=chfad , namelike=v%chfad);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;what I would like to present in the where clause is:&amp;nbsp;&lt;SPAN&gt;where name like "v%chfad". However, the warning says "WARNING: Apparent invocation of macro CHFAD&amp;nbsp;not resolved." Is there any way to solve this? Thank you.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Fri, 02 Jun 2017 18:35:56 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/macro-variable-in-double-quotes/m-p/363895#M274970</guid>
      <dc:creator>Heraaaa</dc:creator>
      <dc:date>2017-06-02T18:35:56Z</dc:date>
    </item>
    <item>
      <title>Re: macro variable in double quotes</title>
      <link>https://communities.sas.com/t5/SAS-Programming/macro-variable-in-double-quotes/m-p/363915#M274971</link>
      <description>&lt;P&gt;&lt;FONT face="verdana,geneva"&gt;Does this give you the desired result?&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;%macro varinput(data=, selectname=, namelike=);

%global &amp;amp;SELECTNAME;

proc contents data=&amp;amp;DATA out=contents(keep=name) noprint; run; quit;

proc sql noprint feedback;
  select name into: &amp;amp;SELECTNAME separated by ' '
  from contents
  where name like "%nrbquote(&amp;amp;NAMELIKE)";
quit;

%mend varinput;

data test;
set sashelp.class;
v1chfad=name;
v2chfad=sex;
v3chfad=age;
v4chfad=height;
v5chfad=weight;
run;

%VARINPUT(data=test, selectname=varlist, namelike=%nrstr(v%%chfad))

%put &amp;amp;=VARLIST;&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="verdana,geneva"&gt;Vince DelGobbo&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="verdana,geneva"&gt;SAS R&amp;amp;D&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Fri, 02 Jun 2017 19:24:18 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/macro-variable-in-double-quotes/m-p/363915#M274971</guid>
      <dc:creator>Vince_SAS</dc:creator>
      <dc:date>2017-06-02T19:24:18Z</dc:date>
    </item>
    <item>
      <title>Re: macro variable in double quotes</title>
      <link>https://communities.sas.com/t5/SAS-Programming/macro-variable-in-double-quotes/m-p/363927#M274972</link>
      <description>&lt;P&gt;I think the easiest way to achieve my desired result it just add a %nrstr in namelike and the where statement stays as: where name like "&amp;amp;namelike.". But thank you all the same!&lt;/P&gt;&lt;PRE class=" language-sas"&gt;&lt;CODE class="  language-sas"&gt;&lt;SPAN class="token macroname"&gt;%VARINPUT&lt;/SPAN&gt;&lt;SPAN class="token punctuation"&gt;(&lt;/SPAN&gt;&lt;SPAN class="token procnames"&gt;data&lt;/SPAN&gt;&lt;SPAN class="token operator"&gt;=&lt;/SPAN&gt;test&lt;SPAN class="token punctuation"&gt;,&lt;/SPAN&gt; selectname&lt;SPAN class="token operator"&gt;=&lt;/SPAN&gt;varlist&lt;SPAN class="token punctuation"&gt;,&lt;/SPAN&gt; namelike&lt;SPAN class="token operator"&gt;=&lt;/SPAN&gt;&lt;SPAN class="token macrostatement"&gt;%nrstr&lt;/SPAN&gt;&lt;SPAN class="token punctuation"&gt;(&lt;/SPAN&gt;v&lt;SPAN class="token macroname"&gt;%chfad&lt;/SPAN&gt;&lt;SPAN class="token punctuation"&gt;)&lt;/SPAN&gt;&lt;SPAN class="token punctuation"&gt;)&lt;/SPAN&gt;&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Fri, 02 Jun 2017 20:06:09 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/macro-variable-in-double-quotes/m-p/363927#M274972</guid>
      <dc:creator>Heraaaa</dc:creator>
      <dc:date>2017-06-02T20:06:09Z</dc:date>
    </item>
    <item>
      <title>Re: macro variable in double quotes</title>
      <link>https://communities.sas.com/t5/SAS-Programming/macro-variable-in-double-quotes/m-p/364093#M274973</link>
      <description>&lt;P&gt;If the macro is for yourself then just add single quotes in the macro CALL and eliminate the quotes in the macro code.&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;%macro varinput...
   ... like &amp;amp;namelike
   ...
%mend;

%VARINPUT(data=test, selectname=varlist, namelike='v%chfad')&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;Or if you want to get a little fancier you can have the macro use DEQUOTE() function to remove and existing quote characters around the values and use the QUOTE() function to add them back.&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;%macro varinput...;
%let namelike=%sysfunc(quote(%qsysfunc(dequote(&amp;amp;namelike)),%str(%')));

   ... like &amp;amp;namelike
   ...
%mend;&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;Then you could all it with or without quotes around it the pattern.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;%varinput(... namelike='A%B')
%varinput(... namelike=ID)
%varinput(... namelike="VAR%")&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;Personally what I do is tell the uses to use * as the wildcard in the macro call and then translate the * to % when using it in a LIKE clause. &amp;nbsp;This eliminates the problem of needing either quotes or macro quoting in the macro call.&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;%macro varinput...;
%let namelike=%sysfunc(quote(%qsysfunc(translate(&amp;amp;namelike,'%','*')),%str(%')));

   ... like &amp;amp;namelike
   ...
%mend;

%varinput(... namelike=A*B)
%varinput(... namelike=ID)
%varinput(... namelike=VAR*)&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Sun, 04 Jun 2017 05:30:19 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/macro-variable-in-double-quotes/m-p/364093#M274973</guid>
      <dc:creator>Tom</dc:creator>
      <dc:date>2017-06-04T05:30:19Z</dc:date>
    </item>
  </channel>
</rss>

