<?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: Default value for Where condition in PROC SQL in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/Default-value-for-Where-condition-in-PROC-SQL/m-p/22811#M3725</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Thanks FriedEgg -do you know if sas macros evaluating it at run time will not be a problem? I am trying it anyways to see for myself. Your logic is very appealing - so I would end up using some thing like this -&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;%if %upcase(&amp;amp;cust)=%str(ALL) %then&lt;/P&gt;&lt;P&gt;&amp;nbsp; %do; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; where abc;&lt;/P&gt;&lt;P&gt;&amp;nbsp; %end;&lt;/P&gt;&lt;P&gt;%else &lt;/P&gt;&lt;P&gt;&amp;nbsp; %do;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; where abc&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; and&amp;nbsp; cust like %oraquote(parm=&amp;amp;cust);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; %end;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;This would add more complexity to the where condition I already have. I mashed up your idea with the existing logic to come up with this -&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;and &lt;/P&gt;&lt;P&gt;(&lt;/P&gt;&lt;P&gt;case when &amp;amp;CSATREPID = 'All' then D_CSAT_OPER.CSR_USER_NM is not null&lt;/P&gt;&lt;P&gt;else D_CSAT_OPER.CSR_USER_NM IN (%oracleQuote(parm=CSATREPID)&lt;/P&gt;&lt;P&gt;)&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I will try them both as soon as I get the data in environment.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Mon, 03 Oct 2011 20:50:26 GMT</pubDate>
    <dc:creator>saspert</dc:creator>
    <dc:date>2011-10-03T20:50:26Z</dc:date>
    <item>
      <title>Default value for Where condition in PROC SQL</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Default-value-for-Where-condition-in-PROC-SQL/m-p/22809#M3723</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;I have a coding issue related to PROC SQL. In the code below.&lt;/P&gt;&lt;P&gt;PURCHASER and CUSTOMER are two macro variables whose values are populated by a javascript drop down values which allow only 1 value to be selected.&lt;/P&gt;&lt;P&gt;Example: &lt;/P&gt;&lt;P&gt;PURCHASER: NJ State, TX State, PA State...&lt;/P&gt;&lt;P&gt;CUSTOMER: Dept of labor, Dept of Commerce....&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The new filter I am trying to add has a default value of All but is also a drop down menu where 1 value can be selected. The new code is in red below &lt;/P&gt;&lt;P&gt;CSATREPID: All. Jim, John, Joe....&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;PROC SQL;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; connect to oracle as myconn (user=&amp;amp;ORAID password=&amp;amp;ORAPW path=&amp;amp;ORAPATH );&lt;BR /&gt;&amp;nbsp; CREATE TABLE HIST_ADT AS SELECT&amp;nbsp; * &lt;BR /&gt;&amp;nbsp;&amp;nbsp; from connection to myconn&lt;BR /&gt;(SELECT DISTINCT &lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; PRCHSR_CD AS Purchaser_Code&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ,CUST_LEG_NM AS Customer_Short_Name&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ,FST_NM AS First_Name&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ,MIDL_NM AS Middle_Name&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ,LST_NM AS Last_Name&lt;BR /&gt;....&lt;BR /&gt;FROM&amp;nbsp;&amp;nbsp;&amp;nbsp; D_MEMBER D_MEMBER&lt;BR /&gt;INNER JOIN&amp;nbsp; F_CSAT_OPER F_CSAT_OPER&lt;BR /&gt;INNER JOIN&amp;nbsp; D_CSAT_OPER D_CSAT_OPER&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;BR /&gt;....&lt;/P&gt;&lt;P&gt;WHERE&amp;nbsp; &lt;BR /&gt;(D_CUSTOMER.PRCHSR_CD = %str(%')&amp;amp;PURCHASER.%str(%')&lt;BR /&gt;AND D_CUSTOMER.CUST_LEG_NM = %str(%')&amp;amp;CUSTOMER.%str(%')&lt;BR /&gt;....&lt;BR /&gt;&lt;SPAN style="color: #ff0000;"&gt;AND&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="color: #ff0000;"&gt;(&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="color: #ff0000;"&gt;D_CSAT_OPER.CSR_USER_NM like %str(%')&amp;amp;CSATREPID.%str(%') &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="color: #ff0000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; OR&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="color: #ff0000;"&gt;D_CSAT_OPER.CSR_USER_NM IN (%oracleQuote(parm=CSATREPID))&lt;/SPAN&gt;&lt;BR /&gt;)&lt;BR /&gt;AND ...)&lt;BR /&gt;quit;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;%macro oracleQuote(parm=);&lt;/P&gt;&lt;P&gt;%if %symexist(&amp;amp;parm.0) %then %do;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; %do i = 1 %to &amp;amp;&amp;amp;&amp;amp;parm.0;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %if &amp;amp;i = 1 %then &lt;/P&gt;&lt;P&gt;&amp;nbsp; %do;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; %str(%')&amp;amp;&amp;amp;&amp;amp;parm&amp;amp;i%str(%')&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %else %do;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %str(,%str(%')&amp;amp;&amp;amp;&amp;amp;parm&amp;amp;i%str(%'))&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&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; %end;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&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;&amp;nbsp; %else %do;&lt;/P&gt;&lt;P&gt;&amp;nbsp; %str(%')&amp;amp;&amp;amp;&amp;amp;parm%str(%')&lt;/P&gt;&lt;P&gt;%end; &lt;/P&gt;&lt;P&gt;%mend;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The issue is - if I select All, the PROC SQL returns 0 records because there are no values for 'All' but in fact should return all records matching Jim, Joe, John et al. Is there a way to covert 'All' option to default to everything?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks,&lt;/P&gt;&lt;P&gt;saspert&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 03 Oct 2011 19:17:01 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Default-value-for-Where-condition-in-PROC-SQL/m-p/22809#M3723</guid>
      <dc:creator>saspert</dc:creator>
      <dc:date>2011-10-03T19:17:01Z</dc:date>
    </item>
    <item>
      <title>Default value for Where condition in PROC SQL</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Default-value-for-Where-condition-in-PROC-SQL/m-p/22810#M3724</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;put your sql query into a macro and account for the all condition in a dynamic where clause construction.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;for example&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;%if %upcase(&amp;amp;cust)=%str(ALL) %then&lt;/P&gt;&lt;P&gt;&amp;nbsp; %do; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; where abc;&lt;/P&gt;&lt;P&gt;&amp;nbsp; %end;&lt;/P&gt;&lt;P&gt;%else &lt;/P&gt;&lt;P&gt;&amp;nbsp; %do;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; where cust like %oraquote(parm=&amp;amp;cust);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; %end;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 03 Oct 2011 19:27:37 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Default-value-for-Where-condition-in-PROC-SQL/m-p/22810#M3724</guid>
      <dc:creator>FriedEgg</dc:creator>
      <dc:date>2011-10-03T19:27:37Z</dc:date>
    </item>
    <item>
      <title>Re: Default value for Where condition in PROC SQL</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Default-value-for-Where-condition-in-PROC-SQL/m-p/22811#M3725</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Thanks FriedEgg -do you know if sas macros evaluating it at run time will not be a problem? I am trying it anyways to see for myself. Your logic is very appealing - so I would end up using some thing like this -&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;%if %upcase(&amp;amp;cust)=%str(ALL) %then&lt;/P&gt;&lt;P&gt;&amp;nbsp; %do; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; where abc;&lt;/P&gt;&lt;P&gt;&amp;nbsp; %end;&lt;/P&gt;&lt;P&gt;%else &lt;/P&gt;&lt;P&gt;&amp;nbsp; %do;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; where abc&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; and&amp;nbsp; cust like %oraquote(parm=&amp;amp;cust);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; %end;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;This would add more complexity to the where condition I already have. I mashed up your idea with the existing logic to come up with this -&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;and &lt;/P&gt;&lt;P&gt;(&lt;/P&gt;&lt;P&gt;case when &amp;amp;CSATREPID = 'All' then D_CSAT_OPER.CSR_USER_NM is not null&lt;/P&gt;&lt;P&gt;else D_CSAT_OPER.CSR_USER_NM IN (%oracleQuote(parm=CSATREPID)&lt;/P&gt;&lt;P&gt;)&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I will try them both as soon as I get the data in environment.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 03 Oct 2011 20:50:26 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Default-value-for-Where-condition-in-PROC-SQL/m-p/22811#M3725</guid>
      <dc:creator>saspert</dc:creator>
      <dc:date>2011-10-03T20:50:26Z</dc:date>
    </item>
    <item>
      <title>Default value for Where condition in PROC SQL</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Default-value-for-Where-condition-in-PROC-SQL/m-p/22812#M3726</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;without really knowing your exact usecase scenario I would not forsee there being any issues with the macro code resolution.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 03 Oct 2011 21:44:19 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Default-value-for-Where-condition-in-PROC-SQL/m-p/22812#M3726</guid>
      <dc:creator>FriedEgg</dc:creator>
      <dc:date>2011-10-03T21:44:19Z</dc:date>
    </item>
  </channel>
</rss>

