<?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: Joining on a wildcard in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/Joining-on-a-wildcard/m-p/328917#M73508</link>
    <description>&lt;P&gt;This was perfect and worked like a charm!&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Thank you so much.&lt;/P&gt;</description>
    <pubDate>Tue, 31 Jan 2017 22:44:41 GMT</pubDate>
    <dc:creator>JS</dc:creator>
    <dc:date>2017-01-31T22:44:41Z</dc:date>
    <item>
      <title>Joining on a wildcard</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Joining-on-a-wildcard/m-p/327885#M73181</link>
      <description>&lt;P&gt;I have two tables.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;First table has a bunch of record-level data.&lt;/P&gt;&lt;P&gt;ID Email_Address&lt;/P&gt;&lt;P&gt;1 josh@gmail.com&lt;/P&gt;&lt;P&gt;2 josh@yahoo.com&lt;/P&gt;&lt;P&gt;3 josh@hotmail.com&lt;/P&gt;&lt;P&gt;4 josh@aol.com&lt;/P&gt;&lt;P&gt;5 josh@facebook.com&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Second table has a lookup on domains&lt;/P&gt;&lt;P&gt;flag&lt;/P&gt;&lt;P&gt;gmail.com&lt;/P&gt;&lt;P&gt;yahoo.com&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Here's what I want&lt;/P&gt;&lt;P&gt;ID email_address in_flag&lt;/P&gt;&lt;P&gt;1 josh@gmail.com 1&lt;/P&gt;&lt;P&gt;2 josh@yahoo.com 1&lt;/P&gt;&lt;P&gt;3 josh@hotmail.com 0&lt;/P&gt;&lt;P&gt;4 josh@aol.com 0&lt;/P&gt;&lt;P&gt;5 josh@facebook.com 0&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I've tried a various number of joins to get to this, but haven't had any luck&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;proc sql;&lt;/P&gt;&lt;P&gt;select *&amp;nbsp;&lt;/P&gt;&lt;P&gt;from table1&lt;/P&gt;&lt;P&gt;left join (select *, 1 as in_flag from table2) on (email_address like catx("","%",flag))&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Any ideas? Thanks!&lt;/P&gt;</description>
      <pubDate>Thu, 26 Jan 2017 22:53:38 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Joining-on-a-wildcard/m-p/327885#M73181</guid>
      <dc:creator>JS</dc:creator>
      <dc:date>2017-01-26T22:53:38Z</dc:date>
    </item>
    <item>
      <title>Re: Joining on a wildcard</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Joining-on-a-wildcard/m-p/327889#M73182</link>
      <description>&lt;P&gt;Why use a wildcard? Why not extract the domain and check for it specifically?&lt;/P&gt;
&lt;P&gt;The SCAN function can extract the domain only.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;proc sql;&lt;/P&gt;
&lt;P&gt;create table want as&lt;/P&gt;
&lt;P&gt;select a.*, case when not missing(b.domain) then 1 else 0 end as flag&lt;/P&gt;
&lt;P&gt;from table1 as a&lt;/P&gt;
&lt;P&gt;Left join table2 as b &amp;nbsp;on&lt;/P&gt;
&lt;P&gt;scan(a.email_address, 2, '@') = b.domain;&lt;/P&gt;
&lt;P&gt;quit;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;You can modify this to an update or join&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Thu, 26 Jan 2017 23:02:02 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Joining-on-a-wildcard/m-p/327889#M73182</guid>
      <dc:creator>Reeza</dc:creator>
      <dc:date>2017-01-26T23:02:02Z</dc:date>
    </item>
    <item>
      <title>Re: Joining on a wildcard</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Joining-on-a-wildcard/m-p/327892#M73183</link>
      <description>&lt;P&gt;Reeza,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;That's a good question.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Reason being is because occasionally the record-level data will present emails like this:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;josh@123gmail.com&lt;/P&gt;&lt;P&gt;josh@jeoiafwgmail.com.bu&lt;/P&gt;&lt;P&gt;josh@a09irafgmail.com&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I still want to be able to capture those.&lt;/P&gt;</description>
      <pubDate>Thu, 26 Jan 2017 23:24:40 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Joining-on-a-wildcard/m-p/327892#M73183</guid>
      <dc:creator>JS</dc:creator>
      <dc:date>2017-01-26T23:24:40Z</dc:date>
    </item>
    <item>
      <title>Re: Joining on a wildcard</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Joining-on-a-wildcard/m-p/327901#M73186</link>
      <description>&lt;P&gt;Comparing only the domain levels is still better IMO.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Extract and then use =* which is the equivalent to Sounds like between character variables.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;You may also want to look into COMPGED\COMPLEV if you want to filter some of the values or have some more control.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;A href="http://support.sas.com/documentation/cdl/en/lefunctionsref/69762/HTML/default/viewer.htm#p0w6napahk6x0an0z2dzozh2ouzm.htm" target="_blank"&gt;http://support.sas.com/documentation/cdl/en/lefunctionsref/69762/HTML/default/viewer.htm#p0w6napahk6x0an0z2dzozh2ouzm.htm&lt;/A&gt;&lt;/P&gt;</description>
      <pubDate>Fri, 27 Jan 2017 00:44:51 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Joining-on-a-wildcard/m-p/327901#M73186</guid>
      <dc:creator>Reeza</dc:creator>
      <dc:date>2017-01-27T00:44:51Z</dc:date>
    </item>
    <item>
      <title>Re: Joining on a wildcard</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Joining-on-a-wildcard/m-p/327907#M73191</link>
      <description>&lt;P&gt;Like this?&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data EMAIL;
 input EMAIL : $50.;
cards;
osh@123gmail.com
josh@jeoiafwgmail.com.bu
josh@a09irafyahoo.com
josh@a09irafaol.com
run;
data DOMAIN;
 input DOMAIN : $50.;
cards;
lag
gmail.com
yahoo.com
run;
proc sql;
  select EMAIl, DOMAIN, (DOMAIN is not null) as IN_FLAG
  from EMAIL
         left join
       DOMAIN
         on EMAIL like catt('%',DOMAIN,'%');
quit; &lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;DIV class="branch"&gt;
&lt;DIV&gt;
&lt;DIV align="left"&gt;
&lt;TABLE class="table" summary="Procedure SQL: Query Results" frame="box" rules="all" cellpadding="5" cellspacing="0"&gt;
&lt;THEAD&gt;
&lt;TR&gt;
&lt;TH class="l b header" scope="col"&gt;EMAIL&lt;/TH&gt;
&lt;TH class="l b header" scope="col"&gt;DOMAIN&lt;/TH&gt;
&lt;TH class="r b header" scope="col"&gt;IN_FLAG&lt;/TH&gt;
&lt;/TR&gt;
&lt;/THEAD&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD class="l data"&gt;osh@123gmail.com&lt;/TD&gt;
&lt;TD class="l data"&gt;gmail.com&lt;/TD&gt;
&lt;TD class="r data"&gt;1&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class="l data"&gt;josh@jeoiafwgmail.com.bu&lt;/TD&gt;
&lt;TD class="l data"&gt;gmail.com&lt;/TD&gt;
&lt;TD class="r data"&gt;1&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class="l data"&gt;josh@a09irafyahoo.com&lt;/TD&gt;
&lt;TD class="l data"&gt;yahoo.com&lt;/TD&gt;
&lt;TD class="r data"&gt;1&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class="l data"&gt;josh@a09irafaol.com&lt;/TD&gt;
&lt;TD class="l data"&gt;&amp;nbsp;&lt;/TD&gt;
&lt;TD class="r data"&gt;0&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;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Fri, 27 Jan 2017 01:27:30 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Joining-on-a-wildcard/m-p/327907#M73191</guid>
      <dc:creator>ChrisNZ</dc:creator>
      <dc:date>2017-01-27T01:27:30Z</dc:date>
    </item>
    <item>
      <title>Re: Joining on a wildcard</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Joining-on-a-wildcard/m-p/327923#M73196</link>
      <description>&lt;P&gt;This might do:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;proc sql;
create table want as
select 
	a.*, 
	not missing(b.domain) as flag
from 
	table1 as a Left join 
	table2 as b on a.email_address contains trim(b.domain);
quit;&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Wed, 01 Feb 2017 03:41:05 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Joining-on-a-wildcard/m-p/327923#M73196</guid>
      <dc:creator>PGStats</dc:creator>
      <dc:date>2017-02-01T03:41:05Z</dc:date>
    </item>
    <item>
      <title>Re: Joining on a wildcard</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Joining-on-a-wildcard/m-p/328916#M73507</link>
      <description>&lt;P&gt;PG,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Thank you for the response. The output did not necessarily accomplish my&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Thank you for your advice though!&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;josh@123gmail.com 0&lt;BR /&gt;josh@jeoiafwgmail.com.bu 0&lt;BR /&gt;josh@a09irafyahoo.com 0&lt;BR /&gt;josh@a09irafaol.com 0&lt;/P&gt;</description>
      <pubDate>Tue, 31 Jan 2017 22:44:17 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Joining-on-a-wildcard/m-p/328916#M73507</guid>
      <dc:creator>JS</dc:creator>
      <dc:date>2017-01-31T22:44:17Z</dc:date>
    </item>
    <item>
      <title>Re: Joining on a wildcard</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Joining-on-a-wildcard/m-p/328917#M73508</link>
      <description>&lt;P&gt;This was perfect and worked like a charm!&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Thank you so much.&lt;/P&gt;</description>
      <pubDate>Tue, 31 Jan 2017 22:44:41 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Joining-on-a-wildcard/m-p/328917#M73508</guid>
      <dc:creator>JS</dc:creator>
      <dc:date>2017-01-31T22:44:41Z</dc:date>
    </item>
    <item>
      <title>Re: Joining on a wildcard</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Joining-on-a-wildcard/m-p/328967#M73534</link>
      <description>&lt;P&gt;You are welcome. I fixed it by adding the trim function. It works now.&lt;/P&gt;</description>
      <pubDate>Wed, 01 Feb 2017 03:42:29 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Joining-on-a-wildcard/m-p/328967#M73534</guid>
      <dc:creator>PGStats</dc:creator>
      <dc:date>2017-02-01T03:42:29Z</dc:date>
    </item>
  </channel>
</rss>

