<?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: SAS select columns conditionally based on the table name in SAS Procedures</title>
    <link>https://communities.sas.com/t5/SAS-Procedures/SAS-select-columns-conditionally-based-on-the-table-name/m-p/147082#M38963</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;If this is running within a macro then use macro conditional logic:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; proc print data=&amp;amp;tbl_name uniform label;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %if &amp;amp;tbl_name = cust_table&amp;nbsp; %then %do;&lt;/STRONG&gt;&amp;nbsp; /* this comparison will be case sensitive so make sure it matche OR use %upcase(&amp;amp;tbl_name) = CUST_TABLE if you have doubts about case of tbl_name. NOTE: the macro processor pretty much treats everything as a string and quotes to delimit a string in simple comparisons like this are not needed*/&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; var cust_id cust_name;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %end;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %&lt;STRONG&gt;else&amp;nbsp; %if &amp;amp;tbl_name = salary_table&amp;nbsp; %then %do;&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; var amount currency;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %end;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;STRONG&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /*if the tbl_name does not match any if condition above, then by default select all columns*/&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; run;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Tue, 06 May 2014 16:39:38 GMT</pubDate>
    <dc:creator>ballardw</dc:creator>
    <dc:date>2014-05-06T16:39:38Z</dc:date>
    <item>
      <title>SAS select columns conditionally based on the table name</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/SAS-select-columns-conditionally-based-on-the-table-name/m-p/147081#M38962</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I have a proc step like this:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; proc print data=&amp;amp;tbl_name uniform label;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; var col_1 col_2 col_3;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; run;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; This step runs in a loop and every iteration picks up a different value of a tbl_name which is actually the name of a SAS table.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;What I wish to do is:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; proc print data=&amp;amp;tbl_name uniform label;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if &amp;amp;tbl_name = 'cust_table'&amp;nbsp; then &lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; var cust_id cust_name;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;STRONG&gt;else&amp;nbsp; if &amp;amp;tbl_name = 'salary_table'&amp;nbsp; then &lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; var amount currency;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;STRONG&gt;else&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /*if the tbl_name does not match any if condition above, then by default select all columns*/&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; run;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;How to do this?&amp;nbsp; I cannot find the syntax, I am just starting to learn&amp;nbsp; SAS.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 06 May 2014 15:58:51 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/SAS-select-columns-conditionally-based-on-the-table-name/m-p/147081#M38962</guid>
      <dc:creator>eagles_dare13</dc:creator>
      <dc:date>2014-05-06T15:58:51Z</dc:date>
    </item>
    <item>
      <title>Re: SAS select columns conditionally based on the table name</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/SAS-select-columns-conditionally-based-on-the-table-name/m-p/147082#M38963</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;If this is running within a macro then use macro conditional logic:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; proc print data=&amp;amp;tbl_name uniform label;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %if &amp;amp;tbl_name = cust_table&amp;nbsp; %then %do;&lt;/STRONG&gt;&amp;nbsp; /* this comparison will be case sensitive so make sure it matche OR use %upcase(&amp;amp;tbl_name) = CUST_TABLE if you have doubts about case of tbl_name. NOTE: the macro processor pretty much treats everything as a string and quotes to delimit a string in simple comparisons like this are not needed*/&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; var cust_id cust_name;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %end;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %&lt;STRONG&gt;else&amp;nbsp; %if &amp;amp;tbl_name = salary_table&amp;nbsp; %then %do;&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; var amount currency;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %end;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;STRONG&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /*if the tbl_name does not match any if condition above, then by default select all columns*/&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; run;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 06 May 2014 16:39:38 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/SAS-select-columns-conditionally-based-on-the-table-name/m-p/147082#M38963</guid>
      <dc:creator>ballardw</dc:creator>
      <dc:date>2014-05-06T16:39:38Z</dc:date>
    </item>
    <item>
      <title>Re: SAS select columns conditionally based on the table name</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/SAS-select-columns-conditionally-based-on-the-table-name/m-p/147083#M38964</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Thank you.&lt;/P&gt;&lt;P&gt;I get error:&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #ff0000; font-size: 12pt; font-family: Courier New;"&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;ERROR: Required operator not found in expression: upcase(&amp;amp;tbl_name) = cust_table&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 06 May 2014 16:51:36 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/SAS-select-columns-conditionally-based-on-the-table-name/m-p/147083#M38964</guid>
      <dc:creator>eagles_dare13</dc:creator>
      <dc:date>2014-05-06T16:51:36Z</dc:date>
    </item>
    <item>
      <title>Re: SAS select columns conditionally based on the table name</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/SAS-select-columns-conditionally-based-on-the-table-name/m-p/147084#M38965</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;You would need the macro version of upcase %upcase(&amp;amp;tbl_name) = CUST_TABLE. I think the forum software split the line in my previous post at the % for some unknown reason or my typing isn't quite right this morning.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Anyway make sure if you use an uppercase comparison that the value compared is in uppercase.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 06 May 2014 16:58:36 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/SAS-select-columns-conditionally-based-on-the-table-name/m-p/147084#M38965</guid>
      <dc:creator>ballardw</dc:creator>
      <dc:date>2014-05-06T16:58:36Z</dc:date>
    </item>
    <item>
      <title>Re: SAS select columns conditionally based on the table name</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/SAS-select-columns-conditionally-based-on-the-table-name/m-p/147085#M38966</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Thank you. Can you please explain a bit why we need this % sign? What is the rule? If I am writing a macro, every keyword needs to be preceded with a % sign? Why the 'var' keyword does not need a % sign?&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 06 May 2014 17:05:31 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/SAS-select-columns-conditionally-based-on-the-table-name/m-p/147085#M38966</guid>
      <dc:creator>eagles_dare13</dc:creator>
      <dc:date>2014-05-06T17:05:31Z</dc:date>
    </item>
    <item>
      <title>Re: SAS select columns conditionally based on the table name</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/SAS-select-columns-conditionally-based-on-the-table-name/m-p/147086#M38967</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;The macro processor is a text generator. So any functions used by the processor use % to let the processor know this is a macro function. A confusing code but legal would be something like %if %upcase(&amp;amp;var) = VALUE %then upcase(something);&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;In your case, the "var" statement is normal SAS code that results with the condition. The bits between the %do; %end; are the results the macro processor passes to SAS as code to execute. The section could be multiple lines and even multiple procedure calls.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;There are quite a few examples of macro coding in the online help and reasonably good documentation in the Macro Language:Reference under the Base SAS documentation. &lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 06 May 2014 17:16:42 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/SAS-select-columns-conditionally-based-on-the-table-name/m-p/147086#M38967</guid>
      <dc:creator>ballardw</dc:creator>
      <dc:date>2014-05-06T17:16:42Z</dc:date>
    </item>
    <item>
      <title>Re: SAS select columns conditionally based on the table name</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/SAS-select-columns-conditionally-based-on-the-table-name/m-p/147087#M38968</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Thank you very much!&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 06 May 2014 17:18:02 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/SAS-select-columns-conditionally-based-on-the-table-name/m-p/147087#M38968</guid>
      <dc:creator>eagles_dare13</dc:creator>
      <dc:date>2014-05-06T17:18:02Z</dc:date>
    </item>
  </channel>
</rss>

