<?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 use of index in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/use-of-index/m-p/264341#M51840</link>
    <description>&lt;P&gt;I got an unexpected result with this code:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE class=" language-sas"&gt;&lt;CODE class="  language-sas"&gt;&lt;SPAN class="token procnames"&gt;data&lt;/SPAN&gt; BHS&lt;SPAN class="token punctuation"&gt;;&lt;/SPAN&gt;
&lt;SPAN class="token keyword"&gt;input&lt;/SPAN&gt; class1	class2:&lt;SPAN class="token punctuation"&gt;$&lt;/SPAN&gt;&lt;SPAN class="token number"&gt;50&lt;/SPAN&gt;&lt;SPAN class="token punctuation"&gt;.&lt;/SPAN&gt; class3:&lt;SPAN class="token punctuation"&gt;$&lt;/SPAN&gt;&lt;SPAN class="token number"&gt;40&lt;/SPAN&gt;&lt;SPAN class="token punctuation"&gt;.&lt;/SPAN&gt; &lt;SPAN class="token keyword"&gt;value&lt;/SPAN&gt;&lt;SPAN class="token punctuation"&gt;;&lt;/SPAN&gt;
datalines&lt;SPAN class="token punctuation"&gt;;&lt;/SPAN&gt;
&lt;SPAN class="token number"&gt;1&lt;/SPAN&gt; xxx name1 &lt;SPAN class="token number"&gt;0&lt;/SPAN&gt;
&lt;SPAN class="token number"&gt;1&lt;/SPAN&gt; xxx name2 &lt;SPAN class="token number"&gt;0&lt;/SPAN&gt;
&lt;SPAN class="token procnames"&gt;run&lt;/SPAN&gt;&lt;SPAN class="token punctuation"&gt;;&lt;/SPAN&gt;
	
&lt;SPAN class="token procnames"&gt;data&lt;/SPAN&gt; WTG&lt;SPAN class="token punctuation"&gt;;&lt;/SPAN&gt;
&lt;SPAN class="token keyword"&gt;input&lt;/SPAN&gt; class1	class2:&lt;SPAN class="token punctuation"&gt;$&lt;/SPAN&gt;&lt;SPAN class="token number"&gt;50&lt;/SPAN&gt;&lt;SPAN class="token punctuation"&gt;.&lt;/SPAN&gt;	class3:&lt;SPAN class="token punctuation"&gt;$&lt;/SPAN&gt;&lt;SPAN class="token number"&gt;40&lt;/SPAN&gt;&lt;SPAN class="token punctuation"&gt;.&lt;/SPAN&gt; &lt;SPAN class="token keyword"&gt;value&lt;/SPAN&gt;&lt;SPAN class="token punctuation"&gt;;&lt;/SPAN&gt;
datalines&lt;SPAN class="token punctuation"&gt;;&lt;/SPAN&gt;	
&lt;SPAN class="token number"&gt;1&lt;/SPAN&gt; xxx name1 &lt;SPAN class="token number"&gt;1&lt;/SPAN&gt;
&lt;SPAN class="token number"&gt;1&lt;/SPAN&gt; xxx name2 &lt;SPAN class="token number"&gt;2&lt;/SPAN&gt;
&lt;SPAN class="token procnames"&gt;run&lt;/SPAN&gt;&lt;SPAN class="token punctuation"&gt;;&lt;/SPAN&gt;

&lt;SPAN class="token procnames"&gt;proc&lt;/SPAN&gt; &lt;SPAN class="token procnames"&gt;datasets&lt;/SPAN&gt; library &lt;SPAN class="token operator"&gt;=&lt;/SPAN&gt; work nolist&lt;SPAN class="token punctuation"&gt;;&lt;/SPAN&gt;
	 modify BHS&lt;SPAN class="token punctuation"&gt;;&lt;/SPAN&gt;
	 &lt;SPAN class="token function"&gt;index&lt;/SPAN&gt; create ts_di2 &lt;SPAN class="token operator"&gt;=&lt;/SPAN&gt; &lt;SPAN class="token punctuation"&gt;(&lt;/SPAN&gt; class1 class2 class3&lt;SPAN class="token punctuation"&gt;)&lt;/SPAN&gt; &lt;SPAN class="token operator"&gt;/&lt;/SPAN&gt; nomiss&lt;SPAN class="token punctuation"&gt;;&lt;/SPAN&gt;
&lt;SPAN class="token procnames"&gt;quit&lt;/SPAN&gt;&lt;SPAN class="token punctuation"&gt;;&lt;/SPAN&gt;

		
			&lt;SPAN class="token procnames"&gt;data&lt;/SPAN&gt; BHS&lt;SPAN class="token punctuation"&gt;;&lt;/SPAN&gt;  
			matched_flag&lt;SPAN class="token operator"&gt;=&lt;/SPAN&gt;&lt;SPAN class="token string"&gt;'N'&lt;/SPAN&gt;&lt;SPAN class="token punctuation"&gt;;&lt;/SPAN&gt;
			&lt;SPAN class="token keyword"&gt;set&lt;/SPAN&gt; WTG &lt;SPAN class="token punctuation"&gt;(&lt;/SPAN&gt;&lt;SPAN class="token function"&gt;rename&lt;/SPAN&gt;&lt;SPAN class="token operator"&gt;=&lt;/SPAN&gt;&lt;SPAN class="token punctuation"&gt;(&lt;/SPAN&gt;&lt;SPAN class="token keyword"&gt;value&lt;/SPAN&gt;&lt;SPAN class="token operator"&gt;=&lt;/SPAN&gt;value_mese class3 &lt;SPAN class="token operator"&gt;=&lt;/SPAN&gt; class3_mese&lt;SPAN class="token punctuation"&gt;)&lt;/SPAN&gt;&lt;SPAN class="token punctuation"&gt;)&lt;/SPAN&gt;&lt;SPAN class="token punctuation"&gt;;&lt;/SPAN&gt;
			do until &lt;SPAN class="token punctuation"&gt;(&lt;/SPAN&gt;_iorc_&lt;SPAN class="token operator"&gt;=&lt;/SPAN&gt;&lt;SPAN class="token macroname"&gt;%sysrc&lt;/SPAN&gt;&lt;SPAN class="token punctuation"&gt;(&lt;/SPAN&gt;_dsenom&lt;SPAN class="token punctuation"&gt;)&lt;/SPAN&gt;&lt;SPAN class="token punctuation"&gt;)&lt;/SPAN&gt;&lt;SPAN class="token punctuation"&gt;;&lt;/SPAN&gt; 
			modify BHS key&lt;SPAN class="token operator"&gt;=&lt;/SPAN&gt;ts_di2&lt;SPAN class="token punctuation"&gt;;&lt;/SPAN&gt;  
			&lt;SPAN class="token statement"&gt;select&lt;/SPAN&gt;&lt;SPAN class="token punctuation"&gt;(&lt;/SPAN&gt;_iorc_&lt;SPAN class="token punctuation"&gt;)&lt;/SPAN&gt;&lt;SPAN class="token punctuation"&gt;;&lt;/SPAN&gt; 
				  when&lt;SPAN class="token punctuation"&gt;(&lt;/SPAN&gt;&lt;SPAN class="token macroname"&gt;%sysrc&lt;/SPAN&gt;&lt;SPAN class="token punctuation"&gt;(&lt;/SPAN&gt;_sok&lt;SPAN class="token punctuation"&gt;)&lt;/SPAN&gt;&lt;SPAN class="token punctuation"&gt;)&lt;/SPAN&gt; do&lt;SPAN class="token punctuation"&gt;;&lt;/SPAN&gt;
					 &lt;SPAN class="token keyword"&gt;value&lt;/SPAN&gt; &lt;SPAN class="token operator"&gt;=&lt;/SPAN&gt; value_mese&lt;SPAN class="token punctuation"&gt;;&lt;/SPAN&gt;
					 class3 &lt;SPAN class="token operator"&gt;=&lt;/SPAN&gt; class3_mese&lt;SPAN class="token punctuation"&gt;;&lt;/SPAN&gt;
					 matched_flag&lt;SPAN class="token operator"&gt;=&lt;/SPAN&gt;&lt;SPAN class="token string"&gt;'Y'&lt;/SPAN&gt;&lt;SPAN class="token punctuation"&gt;;&lt;/SPAN&gt; &lt;SPAN class="token keyword"&gt;put&lt;/SPAN&gt; &lt;SPAN class="token string"&gt;"match"&lt;/SPAN&gt;  _iorc_&lt;SPAN class="token operator"&gt;=&lt;/SPAN&gt; _n_&lt;SPAN class="token operator"&gt;=&lt;/SPAN&gt;&lt;SPAN class="token punctuation"&gt;;&lt;/SPAN&gt;
					 _error_&lt;SPAN class="token operator"&gt;=&lt;/SPAN&gt;&lt;SPAN class="token number"&gt;0&lt;/SPAN&gt;&lt;SPAN class="token punctuation"&gt;;&lt;/SPAN&gt;
					 &lt;SPAN class="token keyword"&gt;replace&lt;/SPAN&gt;&lt;SPAN class="token punctuation"&gt;;&lt;/SPAN&gt;
				  end&lt;SPAN class="token punctuation"&gt;;&lt;/SPAN&gt;
				  when&lt;SPAN class="token punctuation"&gt;(&lt;/SPAN&gt;&lt;SPAN class="token macroname"&gt;%sysrc&lt;/SPAN&gt;&lt;SPAN class="token punctuation"&gt;(&lt;/SPAN&gt;_dsenom&lt;SPAN class="token punctuation"&gt;)&lt;/SPAN&gt;&lt;SPAN class="token punctuation"&gt;)&lt;/SPAN&gt; do&lt;SPAN class="token punctuation"&gt;;&lt;/SPAN&gt;
					 &lt;SPAN class="token keyword"&gt;value&lt;/SPAN&gt; &lt;SPAN class="token operator"&gt;=&lt;/SPAN&gt; value_mese&lt;SPAN class="token punctuation"&gt;;&lt;/SPAN&gt;
					 class3 &lt;SPAN class="token operator"&gt;=&lt;/SPAN&gt; class3_mese&lt;SPAN class="token punctuation"&gt;;&lt;/SPAN&gt;
					 _error_ &lt;SPAN class="token operator"&gt;=&lt;/SPAN&gt; &lt;SPAN class="token number"&gt;0&lt;/SPAN&gt;&lt;SPAN class="token punctuation"&gt;;&lt;/SPAN&gt;  
					 &lt;SPAN class="token keyword"&gt;if&lt;/SPAN&gt; matched_flag&lt;SPAN class="token operator"&gt;=&lt;/SPAN&gt;&lt;SPAN class="token string"&gt;'N'&lt;/SPAN&gt; &lt;SPAN class="token keyword"&gt;then&lt;/SPAN&gt; do&lt;SPAN class="token punctuation"&gt;;&lt;/SPAN&gt;  
                         &lt;SPAN class="token keyword"&gt;put&lt;/SPAN&gt; &lt;SPAN class="token string"&gt;"no_match"&lt;/SPAN&gt;  _iorc_&lt;SPAN class="token operator"&gt;=&lt;/SPAN&gt; _n_&lt;SPAN class="token operator"&gt;=&lt;/SPAN&gt;&lt;SPAN class="token punctuation"&gt;;&lt;/SPAN&gt;
                         output&lt;SPAN class="token punctuation"&gt;;&lt;/SPAN&gt; 
                     end&lt;SPAN class="token punctuation"&gt;;&lt;/SPAN&gt;
				  end&lt;SPAN class="token punctuation"&gt;;&lt;/SPAN&gt;
				  otherwise do&lt;SPAN class="token punctuation"&gt;;&lt;/SPAN&gt;
					 &lt;SPAN class="token keyword"&gt;put&lt;/SPAN&gt; &lt;SPAN class="token string"&gt;'ERROR: Unexpected value for _IORC_= '&lt;/SPAN&gt; _iorc_&lt;SPAN class="token punctuation"&gt;;&lt;/SPAN&gt;
					 &lt;SPAN class="token keyword"&gt;put&lt;/SPAN&gt; &lt;SPAN class="token string"&gt;'Program terminating. DATA step iteration # '&lt;/SPAN&gt; _n_&lt;SPAN class="token punctuation"&gt;;&lt;/SPAN&gt;
					 &lt;SPAN class="token keyword"&gt;put&lt;/SPAN&gt; &lt;SPAN class="token keyword"&gt;_all_&lt;/SPAN&gt;&lt;SPAN class="token punctuation"&gt;;&lt;/SPAN&gt;
					 stop&lt;SPAN class="token punctuation"&gt;;&lt;/SPAN&gt;
				  end&lt;SPAN class="token punctuation"&gt;;&lt;/SPAN&gt;
			   end&lt;SPAN class="token punctuation"&gt;;&lt;/SPAN&gt;
			end&lt;SPAN class="token punctuation"&gt;;&lt;/SPAN&gt;
			&lt;SPAN class="token procnames"&gt;run&lt;/SPAN&gt;&lt;SPAN class="token punctuation"&gt;;&lt;/SPAN&gt;			&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;The result was:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;"There were 3 observations rewritten, 1&lt;BR /&gt;observations added and 0 observations deleted."&lt;/P&gt;
&lt;P&gt;Instead I expected&amp;nbsp;&lt;SPAN&gt;&amp;nbsp;2 observations rewritten&amp;nbsp;and 0&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN&gt;observations added,&amp;nbsp;as there are no duplicates.&amp;nbsp;I do not understand why in the first lap of the cycle enters in the "no match",&amp;nbsp;as all match records&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I expected this outcome for the table BHS:&lt;/P&gt;
&lt;P&gt;data BHS;;&lt;BR /&gt;input class1 class2:$50. class3:$40. value;&lt;BR /&gt;datalines; &lt;BR /&gt;1 xxx name1 1&lt;BR /&gt;1 xxx name2 2&lt;BR /&gt;run;&lt;/P&gt;</description>
    <pubDate>Sat, 16 Apr 2016 07:21:37 GMT</pubDate>
    <dc:creator>mariopellegrini</dc:creator>
    <dc:date>2016-04-16T07:21:37Z</dc:date>
    <item>
      <title>use of index</title>
      <link>https://communities.sas.com/t5/SAS-Programming/use-of-index/m-p/264341#M51840</link>
      <description>&lt;P&gt;I got an unexpected result with this code:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE class=" language-sas"&gt;&lt;CODE class="  language-sas"&gt;&lt;SPAN class="token procnames"&gt;data&lt;/SPAN&gt; BHS&lt;SPAN class="token punctuation"&gt;;&lt;/SPAN&gt;
&lt;SPAN class="token keyword"&gt;input&lt;/SPAN&gt; class1	class2:&lt;SPAN class="token punctuation"&gt;$&lt;/SPAN&gt;&lt;SPAN class="token number"&gt;50&lt;/SPAN&gt;&lt;SPAN class="token punctuation"&gt;.&lt;/SPAN&gt; class3:&lt;SPAN class="token punctuation"&gt;$&lt;/SPAN&gt;&lt;SPAN class="token number"&gt;40&lt;/SPAN&gt;&lt;SPAN class="token punctuation"&gt;.&lt;/SPAN&gt; &lt;SPAN class="token keyword"&gt;value&lt;/SPAN&gt;&lt;SPAN class="token punctuation"&gt;;&lt;/SPAN&gt;
datalines&lt;SPAN class="token punctuation"&gt;;&lt;/SPAN&gt;
&lt;SPAN class="token number"&gt;1&lt;/SPAN&gt; xxx name1 &lt;SPAN class="token number"&gt;0&lt;/SPAN&gt;
&lt;SPAN class="token number"&gt;1&lt;/SPAN&gt; xxx name2 &lt;SPAN class="token number"&gt;0&lt;/SPAN&gt;
&lt;SPAN class="token procnames"&gt;run&lt;/SPAN&gt;&lt;SPAN class="token punctuation"&gt;;&lt;/SPAN&gt;
	
&lt;SPAN class="token procnames"&gt;data&lt;/SPAN&gt; WTG&lt;SPAN class="token punctuation"&gt;;&lt;/SPAN&gt;
&lt;SPAN class="token keyword"&gt;input&lt;/SPAN&gt; class1	class2:&lt;SPAN class="token punctuation"&gt;$&lt;/SPAN&gt;&lt;SPAN class="token number"&gt;50&lt;/SPAN&gt;&lt;SPAN class="token punctuation"&gt;.&lt;/SPAN&gt;	class3:&lt;SPAN class="token punctuation"&gt;$&lt;/SPAN&gt;&lt;SPAN class="token number"&gt;40&lt;/SPAN&gt;&lt;SPAN class="token punctuation"&gt;.&lt;/SPAN&gt; &lt;SPAN class="token keyword"&gt;value&lt;/SPAN&gt;&lt;SPAN class="token punctuation"&gt;;&lt;/SPAN&gt;
datalines&lt;SPAN class="token punctuation"&gt;;&lt;/SPAN&gt;	
&lt;SPAN class="token number"&gt;1&lt;/SPAN&gt; xxx name1 &lt;SPAN class="token number"&gt;1&lt;/SPAN&gt;
&lt;SPAN class="token number"&gt;1&lt;/SPAN&gt; xxx name2 &lt;SPAN class="token number"&gt;2&lt;/SPAN&gt;
&lt;SPAN class="token procnames"&gt;run&lt;/SPAN&gt;&lt;SPAN class="token punctuation"&gt;;&lt;/SPAN&gt;

&lt;SPAN class="token procnames"&gt;proc&lt;/SPAN&gt; &lt;SPAN class="token procnames"&gt;datasets&lt;/SPAN&gt; library &lt;SPAN class="token operator"&gt;=&lt;/SPAN&gt; work nolist&lt;SPAN class="token punctuation"&gt;;&lt;/SPAN&gt;
	 modify BHS&lt;SPAN class="token punctuation"&gt;;&lt;/SPAN&gt;
	 &lt;SPAN class="token function"&gt;index&lt;/SPAN&gt; create ts_di2 &lt;SPAN class="token operator"&gt;=&lt;/SPAN&gt; &lt;SPAN class="token punctuation"&gt;(&lt;/SPAN&gt; class1 class2 class3&lt;SPAN class="token punctuation"&gt;)&lt;/SPAN&gt; &lt;SPAN class="token operator"&gt;/&lt;/SPAN&gt; nomiss&lt;SPAN class="token punctuation"&gt;;&lt;/SPAN&gt;
&lt;SPAN class="token procnames"&gt;quit&lt;/SPAN&gt;&lt;SPAN class="token punctuation"&gt;;&lt;/SPAN&gt;

		
			&lt;SPAN class="token procnames"&gt;data&lt;/SPAN&gt; BHS&lt;SPAN class="token punctuation"&gt;;&lt;/SPAN&gt;  
			matched_flag&lt;SPAN class="token operator"&gt;=&lt;/SPAN&gt;&lt;SPAN class="token string"&gt;'N'&lt;/SPAN&gt;&lt;SPAN class="token punctuation"&gt;;&lt;/SPAN&gt;
			&lt;SPAN class="token keyword"&gt;set&lt;/SPAN&gt; WTG &lt;SPAN class="token punctuation"&gt;(&lt;/SPAN&gt;&lt;SPAN class="token function"&gt;rename&lt;/SPAN&gt;&lt;SPAN class="token operator"&gt;=&lt;/SPAN&gt;&lt;SPAN class="token punctuation"&gt;(&lt;/SPAN&gt;&lt;SPAN class="token keyword"&gt;value&lt;/SPAN&gt;&lt;SPAN class="token operator"&gt;=&lt;/SPAN&gt;value_mese class3 &lt;SPAN class="token operator"&gt;=&lt;/SPAN&gt; class3_mese&lt;SPAN class="token punctuation"&gt;)&lt;/SPAN&gt;&lt;SPAN class="token punctuation"&gt;)&lt;/SPAN&gt;&lt;SPAN class="token punctuation"&gt;;&lt;/SPAN&gt;
			do until &lt;SPAN class="token punctuation"&gt;(&lt;/SPAN&gt;_iorc_&lt;SPAN class="token operator"&gt;=&lt;/SPAN&gt;&lt;SPAN class="token macroname"&gt;%sysrc&lt;/SPAN&gt;&lt;SPAN class="token punctuation"&gt;(&lt;/SPAN&gt;_dsenom&lt;SPAN class="token punctuation"&gt;)&lt;/SPAN&gt;&lt;SPAN class="token punctuation"&gt;)&lt;/SPAN&gt;&lt;SPAN class="token punctuation"&gt;;&lt;/SPAN&gt; 
			modify BHS key&lt;SPAN class="token operator"&gt;=&lt;/SPAN&gt;ts_di2&lt;SPAN class="token punctuation"&gt;;&lt;/SPAN&gt;  
			&lt;SPAN class="token statement"&gt;select&lt;/SPAN&gt;&lt;SPAN class="token punctuation"&gt;(&lt;/SPAN&gt;_iorc_&lt;SPAN class="token punctuation"&gt;)&lt;/SPAN&gt;&lt;SPAN class="token punctuation"&gt;;&lt;/SPAN&gt; 
				  when&lt;SPAN class="token punctuation"&gt;(&lt;/SPAN&gt;&lt;SPAN class="token macroname"&gt;%sysrc&lt;/SPAN&gt;&lt;SPAN class="token punctuation"&gt;(&lt;/SPAN&gt;_sok&lt;SPAN class="token punctuation"&gt;)&lt;/SPAN&gt;&lt;SPAN class="token punctuation"&gt;)&lt;/SPAN&gt; do&lt;SPAN class="token punctuation"&gt;;&lt;/SPAN&gt;
					 &lt;SPAN class="token keyword"&gt;value&lt;/SPAN&gt; &lt;SPAN class="token operator"&gt;=&lt;/SPAN&gt; value_mese&lt;SPAN class="token punctuation"&gt;;&lt;/SPAN&gt;
					 class3 &lt;SPAN class="token operator"&gt;=&lt;/SPAN&gt; class3_mese&lt;SPAN class="token punctuation"&gt;;&lt;/SPAN&gt;
					 matched_flag&lt;SPAN class="token operator"&gt;=&lt;/SPAN&gt;&lt;SPAN class="token string"&gt;'Y'&lt;/SPAN&gt;&lt;SPAN class="token punctuation"&gt;;&lt;/SPAN&gt; &lt;SPAN class="token keyword"&gt;put&lt;/SPAN&gt; &lt;SPAN class="token string"&gt;"match"&lt;/SPAN&gt;  _iorc_&lt;SPAN class="token operator"&gt;=&lt;/SPAN&gt; _n_&lt;SPAN class="token operator"&gt;=&lt;/SPAN&gt;&lt;SPAN class="token punctuation"&gt;;&lt;/SPAN&gt;
					 _error_&lt;SPAN class="token operator"&gt;=&lt;/SPAN&gt;&lt;SPAN class="token number"&gt;0&lt;/SPAN&gt;&lt;SPAN class="token punctuation"&gt;;&lt;/SPAN&gt;
					 &lt;SPAN class="token keyword"&gt;replace&lt;/SPAN&gt;&lt;SPAN class="token punctuation"&gt;;&lt;/SPAN&gt;
				  end&lt;SPAN class="token punctuation"&gt;;&lt;/SPAN&gt;
				  when&lt;SPAN class="token punctuation"&gt;(&lt;/SPAN&gt;&lt;SPAN class="token macroname"&gt;%sysrc&lt;/SPAN&gt;&lt;SPAN class="token punctuation"&gt;(&lt;/SPAN&gt;_dsenom&lt;SPAN class="token punctuation"&gt;)&lt;/SPAN&gt;&lt;SPAN class="token punctuation"&gt;)&lt;/SPAN&gt; do&lt;SPAN class="token punctuation"&gt;;&lt;/SPAN&gt;
					 &lt;SPAN class="token keyword"&gt;value&lt;/SPAN&gt; &lt;SPAN class="token operator"&gt;=&lt;/SPAN&gt; value_mese&lt;SPAN class="token punctuation"&gt;;&lt;/SPAN&gt;
					 class3 &lt;SPAN class="token operator"&gt;=&lt;/SPAN&gt; class3_mese&lt;SPAN class="token punctuation"&gt;;&lt;/SPAN&gt;
					 _error_ &lt;SPAN class="token operator"&gt;=&lt;/SPAN&gt; &lt;SPAN class="token number"&gt;0&lt;/SPAN&gt;&lt;SPAN class="token punctuation"&gt;;&lt;/SPAN&gt;  
					 &lt;SPAN class="token keyword"&gt;if&lt;/SPAN&gt; matched_flag&lt;SPAN class="token operator"&gt;=&lt;/SPAN&gt;&lt;SPAN class="token string"&gt;'N'&lt;/SPAN&gt; &lt;SPAN class="token keyword"&gt;then&lt;/SPAN&gt; do&lt;SPAN class="token punctuation"&gt;;&lt;/SPAN&gt;  
                         &lt;SPAN class="token keyword"&gt;put&lt;/SPAN&gt; &lt;SPAN class="token string"&gt;"no_match"&lt;/SPAN&gt;  _iorc_&lt;SPAN class="token operator"&gt;=&lt;/SPAN&gt; _n_&lt;SPAN class="token operator"&gt;=&lt;/SPAN&gt;&lt;SPAN class="token punctuation"&gt;;&lt;/SPAN&gt;
                         output&lt;SPAN class="token punctuation"&gt;;&lt;/SPAN&gt; 
                     end&lt;SPAN class="token punctuation"&gt;;&lt;/SPAN&gt;
				  end&lt;SPAN class="token punctuation"&gt;;&lt;/SPAN&gt;
				  otherwise do&lt;SPAN class="token punctuation"&gt;;&lt;/SPAN&gt;
					 &lt;SPAN class="token keyword"&gt;put&lt;/SPAN&gt; &lt;SPAN class="token string"&gt;'ERROR: Unexpected value for _IORC_= '&lt;/SPAN&gt; _iorc_&lt;SPAN class="token punctuation"&gt;;&lt;/SPAN&gt;
					 &lt;SPAN class="token keyword"&gt;put&lt;/SPAN&gt; &lt;SPAN class="token string"&gt;'Program terminating. DATA step iteration # '&lt;/SPAN&gt; _n_&lt;SPAN class="token punctuation"&gt;;&lt;/SPAN&gt;
					 &lt;SPAN class="token keyword"&gt;put&lt;/SPAN&gt; &lt;SPAN class="token keyword"&gt;_all_&lt;/SPAN&gt;&lt;SPAN class="token punctuation"&gt;;&lt;/SPAN&gt;
					 stop&lt;SPAN class="token punctuation"&gt;;&lt;/SPAN&gt;
				  end&lt;SPAN class="token punctuation"&gt;;&lt;/SPAN&gt;
			   end&lt;SPAN class="token punctuation"&gt;;&lt;/SPAN&gt;
			end&lt;SPAN class="token punctuation"&gt;;&lt;/SPAN&gt;
			&lt;SPAN class="token procnames"&gt;run&lt;/SPAN&gt;&lt;SPAN class="token punctuation"&gt;;&lt;/SPAN&gt;			&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;The result was:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;"There were 3 observations rewritten, 1&lt;BR /&gt;observations added and 0 observations deleted."&lt;/P&gt;
&lt;P&gt;Instead I expected&amp;nbsp;&lt;SPAN&gt;&amp;nbsp;2 observations rewritten&amp;nbsp;and 0&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN&gt;observations added,&amp;nbsp;as there are no duplicates.&amp;nbsp;I do not understand why in the first lap of the cycle enters in the "no match",&amp;nbsp;as all match records&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I expected this outcome for the table BHS:&lt;/P&gt;
&lt;P&gt;data BHS;;&lt;BR /&gt;input class1 class2:$50. class3:$40. value;&lt;BR /&gt;datalines; &lt;BR /&gt;1 xxx name1 1&lt;BR /&gt;1 xxx name2 2&lt;BR /&gt;run;&lt;/P&gt;</description>
      <pubDate>Sat, 16 Apr 2016 07:21:37 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/use-of-index/m-p/264341#M51840</guid>
      <dc:creator>mariopellegrini</dc:creator>
      <dc:date>2016-04-16T07:21:37Z</dc:date>
    </item>
    <item>
      <title>Re: use of index</title>
      <link>https://communities.sas.com/t5/SAS-Programming/use-of-index/m-p/264460#M51865</link>
      <description>&lt;P&gt;Hello&amp;nbsp;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/3574"&gt;@mariopellegrini﻿&lt;/a&gt;,&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;The &lt;A href="http://support.sas.com/documentation/cdl/en/lebaseutilref/64791/HTML/default/viewer.htm#n06w89msxn3za7n10g5sx25pa0j0.htm" target="_blank"&gt;data step debugger&lt;/A&gt; can be used to investigate the long data step:&lt;/P&gt;
&lt;OL&gt;
&lt;LI&gt;Add the DEBUG option&lt;BR /&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data BHS / debug;
matched_flag='N';
...&lt;/CODE&gt;&lt;/PRE&gt;
&lt;/LI&gt;
&lt;LI&gt;Run the data step.&lt;/LI&gt;
&lt;LI&gt;Resize the windows so that you can see at least the SAS log in addition to the new windows "Debugger Log" and "Debugger Source."&lt;/LI&gt;
&lt;LI&gt;Enter the following command into the command line at the bottom of the Debugger Log:&lt;BR /&gt;
&lt;PRE&gt;enter ex _all_; st&lt;/PRE&gt;
i.e., assign the command "examine all variables and execute the next statement" to the ENTER (Return) key.&lt;/LI&gt;
&lt;LI&gt;Press the Return (or ENTER) key repeatedly and observe how the variable values change as the debugger goes through the data step.&lt;/LI&gt;
&lt;LI&gt;To close the debugger, enter q into the debugger's command line.&lt;/LI&gt;
&lt;/OL&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;When the MODIFY statement of the data step is executed for the first time, the debugger log shows: class1 = 1, class2 = xxx and class3 is missing. The latter is logical because nothing has been retrieved from dataset BHS yet, and WTG with the rename option "class3 = class3_mese" does not populate CLASS3 either. There is no observation in BHS with&amp;nbsp;&lt;SPAN&gt;class1 = 1, class2 = 'xxx' and class3 = ' '. I think, this is why no match is found and the DO-END block of the second WHEN statement is executed next. This, in turn, changes the value of CLASS3, which leads to a match at the next execution of the MODIFY statement ...&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;Maybe this (and the rest of the debugger log) sheds light on the inner workings of this somewhat convoluted data step.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Sun, 17 Apr 2016 23:31:45 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/use-of-index/m-p/264460#M51865</guid>
      <dc:creator>FreelanceReinh</dc:creator>
      <dc:date>2016-04-17T23:31:45Z</dc:date>
    </item>
  </channel>
</rss>

