<?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: Difference in outputs between datastep and proc sql in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/Difference-in-outputs-between-datastep-and-proc-sql/m-p/479944#M123961</link>
    <description>&lt;P&gt;Don't expect any order you did not force. See Maxim 31.&lt;/P&gt;</description>
    <pubDate>Fri, 20 Jul 2018 16:35:14 GMT</pubDate>
    <dc:creator>Kurt_Bremser</dc:creator>
    <dc:date>2018-07-20T16:35:14Z</dc:date>
    <item>
      <title>Difference in outputs between datastep and proc sql</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Difference-in-outputs-between-datastep-and-proc-sql/m-p/479934#M123954</link>
      <description>&lt;P&gt;Hi All,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I have two data steps, one in Proc SQL the other in bases SAS. Both of the codes are sourcing the exact same variables from the same source and are being sorted by the same variable.&lt;/P&gt;&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;proc sql;
	create table vals_base as
	select 
	ACCTAPPLNUMBER as application_id,
	VALUATIONDATE,
	DIM_CO_VALUATION_SSK,	
	VALUATIONTYPE,
	LASTMODIFIEDDATE_DATE,
	NUMBEROFBATHROOMS,
	NUMBEROFBEDROOMS,
	PROPERTYBUILT,
	VALUEINCURRENTCONDITION,	
	PROPERTYTYPE,
	PROPERTYSUBTYPE
	from TEST_APP.DPR_DIM_APPLICATION_VALUATIONS
	order by ACCTAPPLNUMBER;
quit;&lt;/CODE&gt;&lt;/PRE&gt;&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;proc sort data=test_app.DPR_DIM_APPLICATION_VALUATIONS (keep = DIM_CO_VALUATION_SSK 
              VALUATIONDATE VALUATIONTYPE VALUEINCURRENTCONDITION LASTMODIFIEDDATE_DATE
              NUMBEROFBATHROOMS NUMBEROFBEDROOMS PROPERTYBUILT ACCTAPPLNUMBER
              PROPERTYTYPE PROPERTYSUBTYPE )  out=vals_base (rename = (ACCTAPPLNUMBER = application_id));
 by ACCTAPPLNUMBER;
run;&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;Why would the outputs differ in sort beyond the sort key. For example the valuationtype variable is outputted different in both outputs although it is not listed as a variable&amp;nbsp; to be sorted.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Base SAS output&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;&lt;STRONG&gt;application_id&lt;/STRONG&gt;&lt;/TD&gt;&lt;TD&gt;&lt;STRONG&gt;VALUATIONDATE&lt;/STRONG&gt;&lt;/TD&gt;&lt;TD&gt;&lt;STRONG&gt;VALUATIONTYPE&lt;/STRONG&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1538&lt;/TD&gt;&lt;TD&gt;28FEB2014:00:00:00&lt;/TD&gt;&lt;TD&gt;Quest - Homebuyers&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1538&lt;/TD&gt;&lt;TD&gt;17FEB2014:00:00:00&lt;/TD&gt;&lt;TD&gt;Quest - Homebuyers&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1538&lt;/TD&gt;&lt;TD&gt;28FEB2014:00:00:00&lt;/TD&gt;&lt;TD&gt;Quest - Full Valuation&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Proc SQL output&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;&lt;STRONG&gt;application_id&lt;/STRONG&gt;&lt;/TD&gt;&lt;TD&gt;&lt;STRONG&gt;VALUATIONDATE&lt;/STRONG&gt;&lt;/TD&gt;&lt;TD&gt;&lt;STRONG&gt;VALUATIONTYPE&lt;/STRONG&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1538&lt;/TD&gt;&lt;TD&gt;28FEB2014:00:00:00&lt;/TD&gt;&lt;TD&gt;Quest - Full Valuation&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1538&lt;/TD&gt;&lt;TD&gt;17FEB2014:00:00:00&lt;/TD&gt;&lt;TD&gt;Quest - Homebuyers&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1538&lt;/TD&gt;&lt;TD&gt;28FEB2014:00:00:00&lt;/TD&gt;&lt;TD&gt;Quest - Homebuyers&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;The source table does contain multiple application Id's.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Thanks&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Adnan&lt;/P&gt;</description>
      <pubDate>Fri, 20 Jul 2018 16:08:39 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Difference-in-outputs-between-datastep-and-proc-sql/m-p/479934#M123954</guid>
      <dc:creator>Adnan_Razaq</dc:creator>
      <dc:date>2018-07-20T16:08:39Z</dc:date>
    </item>
    <item>
      <title>Re: Difference in outputs between datastep and proc sql</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Difference-in-outputs-between-datastep-and-proc-sql/m-p/479938#M123958</link>
      <description>&lt;P&gt;The secondary sort order is not guranteed in sql. Well, the sort order is never guranteed in sql regardless unless you force or specify a vars in order by clause like 1,2,3 to get desired&lt;/P&gt;&lt;P&gt;However proc sort/datastep are sequential processing. Therefore spits out the order that exists in the dataset that is by read.&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;SQL is very tricky in general to imagine how the &lt;EM&gt;&lt;STRONG&gt;sql processor&lt;/STRONG&gt; &lt;/EM&gt;would work for a particular logic&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;A simpler example to illustrate:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;proc sql;&lt;BR /&gt;create table w as&lt;BR /&gt;select *&lt;BR /&gt;from sashelp.class&lt;BR /&gt;order by sex;&lt;BR /&gt;quit;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;SAS Output&lt;/P&gt;&lt;DIV class="branch"&gt;&lt;DIV&gt;&lt;DIV align="center"&gt;Name Sex Age Height Weight &lt;TABLE cellspacing="0" cellpadding="5"&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;Judy&lt;/TD&gt;&lt;TD&gt;F&lt;/TD&gt;&lt;TD&gt;14&lt;/TD&gt;&lt;TD&gt;64.3&lt;/TD&gt;&lt;TD&gt;90&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;Jane&lt;/TD&gt;&lt;TD&gt;F&lt;/TD&gt;&lt;TD&gt;12&lt;/TD&gt;&lt;TD&gt;59.8&lt;/TD&gt;&lt;TD&gt;84.5&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;Joyce&lt;/TD&gt;&lt;TD&gt;F&lt;/TD&gt;&lt;TD&gt;11&lt;/TD&gt;&lt;TD&gt;51.3&lt;/TD&gt;&lt;TD&gt;50.5&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;Barbara&lt;/TD&gt;&lt;TD&gt;F&lt;/TD&gt;&lt;TD&gt;13&lt;/TD&gt;&lt;TD&gt;65.3&lt;/TD&gt;&lt;TD&gt;98&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;Carol&lt;/TD&gt;&lt;TD&gt;F&lt;/TD&gt;&lt;TD&gt;14&lt;/TD&gt;&lt;TD&gt;62.8&lt;/TD&gt;&lt;TD&gt;102.5&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;Mary&lt;/TD&gt;&lt;TD&gt;F&lt;/TD&gt;&lt;TD&gt;15&lt;/TD&gt;&lt;TD&gt;66.5&lt;/TD&gt;&lt;TD&gt;112&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;Louise&lt;/TD&gt;&lt;TD&gt;F&lt;/TD&gt;&lt;TD&gt;12&lt;/TD&gt;&lt;TD&gt;56.3&lt;/TD&gt;&lt;TD&gt;77&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;Alice&lt;/TD&gt;&lt;TD&gt;F&lt;/TD&gt;&lt;TD&gt;13&lt;/TD&gt;&lt;TD&gt;56.5&lt;/TD&gt;&lt;TD&gt;84&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;Janet&lt;/TD&gt;&lt;TD&gt;F&lt;/TD&gt;&lt;TD&gt;15&lt;/TD&gt;&lt;TD&gt;62.5&lt;/TD&gt;&lt;TD&gt;112.5&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;proc sort data=sashelp.class out=w1;&lt;BR /&gt;by sex;&lt;BR /&gt;run;&lt;/P&gt;&lt;P&gt;SAS Output&lt;/P&gt;&lt;DIV class="branch"&gt;&lt;DIV&gt;&lt;DIV align="center"&gt;Obs Name Sex Age Height Weight1234567 &lt;TABLE cellspacing="0" cellpadding="5"&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;Alice&lt;/TD&gt;&lt;TD&gt;F&lt;/TD&gt;&lt;TD&gt;13&lt;/TD&gt;&lt;TD&gt;56.5&lt;/TD&gt;&lt;TD&gt;84.0&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;Barbara&lt;/TD&gt;&lt;TD&gt;F&lt;/TD&gt;&lt;TD&gt;13&lt;/TD&gt;&lt;TD&gt;65.3&lt;/TD&gt;&lt;TD&gt;98.0&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;Carol&lt;/TD&gt;&lt;TD&gt;F&lt;/TD&gt;&lt;TD&gt;14&lt;/TD&gt;&lt;TD&gt;62.8&lt;/TD&gt;&lt;TD&gt;102.5&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;Jane&lt;/TD&gt;&lt;TD&gt;F&lt;/TD&gt;&lt;TD&gt;12&lt;/TD&gt;&lt;TD&gt;59.8&lt;/TD&gt;&lt;TD&gt;84.5&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;Janet&lt;/TD&gt;&lt;TD&gt;F&lt;/TD&gt;&lt;TD&gt;15&lt;/TD&gt;&lt;TD&gt;62.5&lt;/TD&gt;&lt;TD&gt;112.5&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;Joyce&lt;/TD&gt;&lt;TD&gt;F&lt;/TD&gt;&lt;TD&gt;11&lt;/TD&gt;&lt;TD&gt;51.3&lt;/TD&gt;&lt;TD&gt;50.5&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;Judy&lt;/TD&gt;&lt;TD&gt;F&lt;/TD&gt;&lt;TD&gt;14&lt;/TD&gt;&lt;TD&gt;64.3&lt;/TD&gt;&lt;TD&gt;90.0&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;</description>
      <pubDate>Fri, 20 Jul 2018 16:19:32 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Difference-in-outputs-between-datastep-and-proc-sql/m-p/479938#M123958</guid>
      <dc:creator>novinosrin</dc:creator>
      <dc:date>2018-07-20T16:19:32Z</dc:date>
    </item>
    <item>
      <title>Re: Difference in outputs between datastep and proc sql</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Difference-in-outputs-between-datastep-and-proc-sql/m-p/479944#M123961</link>
      <description>&lt;P&gt;Don't expect any order you did not force. See Maxim 31.&lt;/P&gt;</description>
      <pubDate>Fri, 20 Jul 2018 16:35:14 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Difference-in-outputs-between-datastep-and-proc-sql/m-p/479944#M123961</guid>
      <dc:creator>Kurt_Bremser</dc:creator>
      <dc:date>2018-07-20T16:35:14Z</dc:date>
    </item>
  </channel>
</rss>

