<?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: Proc SQL Join Using Like or Contains in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/Proc-SQL-Join-Using-Like-or-Contains/m-p/408261#M99601</link>
    <description>&lt;P&gt;Did you not try using the CONTAINS operator?&amp;nbsp; Remember to trim the trailing spaces from the small string that you are looking for in the larger string.&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data PLANNER_FILE;
  length Promo_Code Level3_A $20 ;
  input Promo_Code Level3_A ;
cards;
C-00118868 ACCIDENT
C-00120397 HANDBOOK
; 
data MATERIAL_DATA;
  infile cards dsd dlm='|';
  length LEVEL3 $20 MATERIAL 8 ;
  input level3 material ;
cards;
CANADIAN HANDBOOKS|    892
CANADIAN HANDBOOKS|    1015
CANADIAN HANDBOOKS|    13546
CANADIAN HANDBOOKS|    13555
CANADIAN HANDBOOKS|    41968
FMCSR HANDBOOK|    765
FMCSR HANDBOOK|    7545
FMCSR HANDBOOK|    43212
FMCSR HANDBOOK|    4003162
FMCSR HANDBOOK|    4011027
HANDBOOK KITS|    37649
HANDBOOK KITS|    37651
HANDBOOK KITS|    37652
HANDBOOK KITS|    37653
HANDBOOK KITS|    37655
HANDBOOK KITS|    37657
HANDBOOK KITS|    37658
;

PROC SQL;
CREATE TABLE WORK.QUERY_FOR_FIX_PLANNER_FILE_0002 AS
  SELECT t1.PROMO_CODE
       , t1.LEVEL3_A
       , t2.LEVEL3
       , t2.MATERIAL AS MATERIAL1
  FROM WORK.PLANNER_FILE t1
  INNER JOIN WORK.MATERIAL_DATA t2 
    ON (t2.LEVEL3 contains trim(t1.Level3_A))
;
QUIT;&lt;/CODE&gt;&lt;/PRE&gt;</description>
    <pubDate>Sat, 28 Oct 2017 16:18:24 GMT</pubDate>
    <dc:creator>Tom</dc:creator>
    <dc:date>2017-10-28T16:18:24Z</dc:date>
    <item>
      <title>Proc SQL Join Using Like or Contains</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Proc-SQL-Join-Using-Like-or-Contains/m-p/408156#M99551</link>
      <description>&lt;P&gt;I have two data sets and want to do a one to many merge to get the&amp;nbsp; Material field below.&amp;nbsp; The problem is that the field I want to join with is not a complete field - it is only part of the join in the other data set.&amp;nbsp; Is there a way to join using a like or contains within the join? I read that an inner join would work but it does not.&amp;nbsp; Thank you!&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;PLANNER_FILE&lt;/P&gt;&lt;P&gt;Prom_Cd&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Level3_A&lt;/P&gt;&lt;P&gt;C-00118868&amp;nbsp;&amp;nbsp; &amp;nbsp;ACCIDENT&lt;BR /&gt;C-00120397&amp;nbsp;&amp;nbsp; &amp;nbsp;HANDBOOK&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;MATERIAL_DATA&lt;/P&gt;&lt;P&gt;LEVEL3&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;&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; MATERIAL&lt;/P&gt;&lt;P&gt;CANADIAN HANDBOOKS&amp;nbsp;&amp;nbsp; &amp;nbsp;892&lt;BR /&gt;CANADIAN HANDBOOKS&amp;nbsp;&amp;nbsp; &amp;nbsp;1015&lt;BR /&gt;CANADIAN HANDBOOKS&amp;nbsp;&amp;nbsp; &amp;nbsp;13546&lt;BR /&gt;CANADIAN HANDBOOKS&amp;nbsp;&amp;nbsp; &amp;nbsp;13555&lt;BR /&gt;CANADIAN HANDBOOKS&amp;nbsp;&amp;nbsp; &amp;nbsp;41968&lt;BR /&gt;FMCSR HANDBOOK&amp;nbsp;&amp;nbsp; &amp;nbsp;765&lt;BR /&gt;FMCSR HANDBOOK&amp;nbsp;&amp;nbsp; &amp;nbsp;7545&lt;BR /&gt;FMCSR HANDBOOK&amp;nbsp;&amp;nbsp; &amp;nbsp;43212&lt;BR /&gt;FMCSR HANDBOOK&amp;nbsp;&amp;nbsp; &amp;nbsp;4003162&lt;BR /&gt;FMCSR HANDBOOK&amp;nbsp;&amp;nbsp; &amp;nbsp;4011027&lt;BR /&gt;HANDBOOK KITS&amp;nbsp;&amp;nbsp; &amp;nbsp;37649&lt;BR /&gt;HANDBOOK KITS&amp;nbsp;&amp;nbsp; &amp;nbsp;37651&lt;BR /&gt;HANDBOOK KITS&amp;nbsp;&amp;nbsp; &amp;nbsp;37652&lt;BR /&gt;HANDBOOK KITS&amp;nbsp;&amp;nbsp; &amp;nbsp;37653&lt;BR /&gt;HANDBOOK KITS&amp;nbsp;&amp;nbsp; &amp;nbsp;37655&lt;BR /&gt;HANDBOOK KITS&amp;nbsp;&amp;nbsp; &amp;nbsp;37657&lt;BR /&gt;HANDBOOK KITS&amp;nbsp;&amp;nbsp; &amp;nbsp;37658&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Current Code - no output&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;PROC SQL;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; CREATE TABLE WORK.QUERY_FOR_FIX_PLANNER_FILE_0002 AS&lt;BR /&gt;&amp;nbsp;&amp;nbsp; SELECT t1.PROMO_CODE,&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; t1.LEVEL3_A,&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; t2.LEVEL3,&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; t2.MATERIAL AS MATERIAL1&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; FROM WORK.PLANNER_FILE t1&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; INNER JOIN WORK.MATERIAL_DATA t2 ON (t1.LEVEL3_A = t2.LEVEL3);&lt;BR /&gt;QUIT;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Fri, 27 Oct 2017 20:08:06 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Proc-SQL-Join-Using-Like-or-Contains/m-p/408156#M99551</guid>
      <dc:creator>cbrotz</dc:creator>
      <dc:date>2017-10-27T20:08:06Z</dc:date>
    </item>
    <item>
      <title>Re: Proc SQL Join Using Like or Contains</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Proc-SQL-Join-Using-Like-or-Contains/m-p/408167#M99557</link>
      <description>&lt;P&gt;untested code&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;FROM WORK.PLANNER_FILE t1&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; INNER JOIN WORK.MATERIAL_DATA t2 ON&amp;nbsp; find(t2.LEVEL3,t1.LEVEL3_A ) &amp;gt; 0&lt;/P&gt;</description>
      <pubDate>Fri, 27 Oct 2017 20:46:49 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Proc-SQL-Join-Using-Like-or-Contains/m-p/408167#M99557</guid>
      <dc:creator>kiranv_</dc:creator>
      <dc:date>2017-10-27T20:46:49Z</dc:date>
    </item>
    <item>
      <title>Re: Proc SQL Join Using Like or Contains</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Proc-SQL-Join-Using-Like-or-Contains/m-p/408169#M99558</link>
      <description>&lt;P&gt;I tried the find statement.&amp;nbsp; It is not erroring out but I am getting the following message in the log and no output.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;NOTE: The execution of this query involves performing one or more Cartesian product joins that can not be optimized.&lt;BR /&gt;NOTE: Table WORK.QUERY_FOR_FIX_PLANNER_FILE_0002 created, with 0 rows and 4 columns.&lt;BR /&gt;&lt;BR /&gt;42&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; QUIT;&lt;/P&gt;</description>
      <pubDate>Fri, 27 Oct 2017 20:56:03 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Proc-SQL-Join-Using-Like-or-Contains/m-p/408169#M99558</guid>
      <dc:creator>cbrotz</dc:creator>
      <dc:date>2017-10-27T20:56:03Z</dc:date>
    </item>
    <item>
      <title>Re: Proc SQL Join Using Like or Contains</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Proc-SQL-Join-Using-Like-or-Contains/m-p/408175#M99562</link>
      <description>&lt;P&gt;Any join on like condition will be always a Cartesian product. Currently I do not have SAS handy, so I cannot test any&amp;nbsp;code.&lt;/P&gt;</description>
      <pubDate>Fri, 27 Oct 2017 21:11:11 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Proc-SQL-Join-Using-Like-or-Contains/m-p/408175#M99562</guid>
      <dc:creator>kiranv_</dc:creator>
      <dc:date>2017-10-27T21:11:11Z</dc:date>
    </item>
    <item>
      <title>Re: Proc SQL Join Using Like or Contains</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Proc-SQL-Join-Using-Like-or-Contains/m-p/408176#M99563</link>
      <description>&lt;P&gt;but no output.&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Fri, 27 Oct 2017 21:12:27 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Proc-SQL-Join-Using-Like-or-Contains/m-p/408176#M99563</guid>
      <dc:creator>cbrotz</dc:creator>
      <dc:date>2017-10-27T21:12:27Z</dc:date>
    </item>
    <item>
      <title>Re: Proc SQL Join Using Like or Contains</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Proc-SQL-Join-Using-Like-or-Contains/m-p/408181#M99566</link>
      <description>&lt;P&gt;please try FROM WORK.PLANNER_FILE t1&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; INNER JOIN WORK.MATERIAL_DATA t2 ON&amp;nbsp; find(t2.LEVEL3,trim(t1.LEVEL3_A) ) &amp;gt; 0&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;if you see result with this use distinct in your select&lt;/P&gt;</description>
      <pubDate>Fri, 27 Oct 2017 21:24:30 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Proc-SQL-Join-Using-Like-or-Contains/m-p/408181#M99566</guid>
      <dc:creator>kiranv_</dc:creator>
      <dc:date>2017-10-27T21:24:30Z</dc:date>
    </item>
    <item>
      <title>Re: Proc SQL Join Using Like or Contains</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Proc-SQL-Join-Using-Like-or-Contains/m-p/408203#M99580</link>
      <description>Dear cbrotz, please check link below.i think this link will be solve your question.&lt;BR /&gt;&lt;BR /&gt;&lt;A href="https://communities.sas.com/t5/SAS-Enterprise-Guide/Join-using-a-partial-match/td-p/172335" target="_blank"&gt;https://communities.sas.com/t5/SAS-Enterprise-Guide/Join-using-a-partial-match/td-p/172335&lt;/A&gt;</description>
      <pubDate>Sat, 28 Oct 2017 00:25:01 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Proc-SQL-Join-Using-Like-or-Contains/m-p/408203#M99580</guid>
      <dc:creator>Yavuz</dc:creator>
      <dc:date>2017-10-28T00:25:01Z</dc:date>
    </item>
    <item>
      <title>Re: Proc SQL Join Using Like or Contains</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Proc-SQL-Join-Using-Like-or-Contains/m-p/408209#M99583</link>
      <description>&lt;P&gt;In your SQL join you can use =* to mean like,&amp;nbsp;but your question is a bit unclear. What are you expecting back if you have the data shown in your post, what's the sample output?&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;A href="http://documentation.sas.com/?docsetId=sqlproc&amp;amp;docsetTarget=p020urejdmvi7vn1t9avbvazqapu.htm&amp;amp;docsetVersion=9.4&amp;amp;locale=en" target="_blank"&gt;http://documentation.sas.com/?docsetId=sqlproc&amp;amp;docsetTarget=p020urejdmvi7vn1t9avbvazqapu.htm&amp;amp;docsetVersion=9.4&amp;amp;locale=en&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;There's a really good example (don't have time to look right now) on SQL fuzzy matching from I think either Tom or MKeintz.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Sat, 28 Oct 2017 00:53:51 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Proc-SQL-Join-Using-Like-or-Contains/m-p/408209#M99583</guid>
      <dc:creator>Reeza</dc:creator>
      <dc:date>2017-10-28T00:53:51Z</dc:date>
    </item>
    <item>
      <title>Re: Proc SQL Join Using Like or Contains</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Proc-SQL-Join-Using-Like-or-Contains/m-p/408211#M99585</link>
      <description>&lt;P&gt;Yes that did it!&amp;nbsp; Thank you so much.&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Sat, 28 Oct 2017 01:08:04 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Proc-SQL-Join-Using-Like-or-Contains/m-p/408211#M99585</guid>
      <dc:creator>cbrotz</dc:creator>
      <dc:date>2017-10-28T01:08:04Z</dc:date>
    </item>
    <item>
      <title>Re: Proc SQL Join Using Like or Contains</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Proc-SQL-Join-Using-Like-or-Contains/m-p/408261#M99601</link>
      <description>&lt;P&gt;Did you not try using the CONTAINS operator?&amp;nbsp; Remember to trim the trailing spaces from the small string that you are looking for in the larger string.&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data PLANNER_FILE;
  length Promo_Code Level3_A $20 ;
  input Promo_Code Level3_A ;
cards;
C-00118868 ACCIDENT
C-00120397 HANDBOOK
; 
data MATERIAL_DATA;
  infile cards dsd dlm='|';
  length LEVEL3 $20 MATERIAL 8 ;
  input level3 material ;
cards;
CANADIAN HANDBOOKS|    892
CANADIAN HANDBOOKS|    1015
CANADIAN HANDBOOKS|    13546
CANADIAN HANDBOOKS|    13555
CANADIAN HANDBOOKS|    41968
FMCSR HANDBOOK|    765
FMCSR HANDBOOK|    7545
FMCSR HANDBOOK|    43212
FMCSR HANDBOOK|    4003162
FMCSR HANDBOOK|    4011027
HANDBOOK KITS|    37649
HANDBOOK KITS|    37651
HANDBOOK KITS|    37652
HANDBOOK KITS|    37653
HANDBOOK KITS|    37655
HANDBOOK KITS|    37657
HANDBOOK KITS|    37658
;

PROC SQL;
CREATE TABLE WORK.QUERY_FOR_FIX_PLANNER_FILE_0002 AS
  SELECT t1.PROMO_CODE
       , t1.LEVEL3_A
       , t2.LEVEL3
       , t2.MATERIAL AS MATERIAL1
  FROM WORK.PLANNER_FILE t1
  INNER JOIN WORK.MATERIAL_DATA t2 
    ON (t2.LEVEL3 contains trim(t1.Level3_A))
;
QUIT;&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Sat, 28 Oct 2017 16:18:24 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Proc-SQL-Join-Using-Like-or-Contains/m-p/408261#M99601</guid>
      <dc:creator>Tom</dc:creator>
      <dc:date>2017-10-28T16:18:24Z</dc:date>
    </item>
    <item>
      <title>Re: Proc SQL Join Using Like or Contains</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Proc-SQL-Join-Using-Like-or-Contains/m-p/561199#M157059</link>
      <description>&lt;P&gt;Running that code I do get the message "The execution of this query involves performing one or more C&lt;SPAN&gt;artesian product joins that can not be optimized." yet shows the 'correct' result.&amp;nbsp; Should I be worried when I run a similar JOIN with more than 100,000 rows to join?&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Thu, 23 May 2019 16:29:08 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Proc-SQL-Join-Using-Like-or-Contains/m-p/561199#M157059</guid>
      <dc:creator>dknochen</dc:creator>
      <dc:date>2019-05-23T16:29:08Z</dc:date>
    </item>
  </channel>
</rss>

