<?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-creating new table not working in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/Proc-sql-creating-new-table-not-working/m-p/926111#M364414</link>
    <description>&lt;P&gt;Your use of the IN operator is incorrect - you can only compare constants using IN, not columns. You could do something like this to avoid a lot of typing:&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;where cats(smq01sc, smq02sc, smq03sc, smq04sc, smq05sc, smq06sc,smq07sc, smq08sc,smq09sc, smq10sc) contains 'Broad' &lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;That assumes one or more of the columns contains 'Broad'.&lt;/P&gt;</description>
    <pubDate>Fri, 26 Apr 2024 23:39:37 GMT</pubDate>
    <dc:creator>SASKiwi</dc:creator>
    <dc:date>2024-04-26T23:39:37Z</dc:date>
    <item>
      <title>Proc sql-creating new table not working</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Proc-sql-creating-new-table-not-working/m-p/926110#M364413</link>
      <description>&lt;P&gt;Hello,&lt;/P&gt;&lt;P&gt;I am trying to use proc sql to create a new table (code below) but getting an error ( log screenshot attached). Could anyone please help me with this issue? Thank you.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;proc sql;&lt;BR /&gt;create table ae as&lt;BR /&gt;select distinct usubjid, aedecod,&lt;BR /&gt;catx('@', smq01nam, smq02nam, smq03nam, smq04nam, smq05nam, smq06nam, smq07nam, smq08nam,&lt;BR /&gt;smq09nam, smq10nam) as aesmq,&lt;BR /&gt;aebodsys, trt01an&lt;BR /&gt;from snpm&lt;BR /&gt;where 'Broad' in (smq01sc, smq02sc, smq03sc, smq04sc, smq05sc, smq06sc, smq07sc, smq08sc,&lt;BR /&gt;smq09sc, smq10sc)&lt;BR /&gt;and not missing(catx('@', smq01nam, smq02nam, smq03nam, smq04nam, smq05nam, smq06nam, smq07nam, smq08nam,&lt;BR /&gt;smq09nam, smq10nam));&lt;BR /&gt;quit;&lt;/P&gt;</description>
      <pubDate>Fri, 26 Apr 2024 22:42:17 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Proc-sql-creating-new-table-not-working/m-p/926110#M364413</guid>
      <dc:creator>billi_billi</dc:creator>
      <dc:date>2024-04-26T22:42:17Z</dc:date>
    </item>
    <item>
      <title>Re: Proc sql-creating new table not working</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Proc-sql-creating-new-table-not-working/m-p/926111#M364414</link>
      <description>&lt;P&gt;Your use of the IN operator is incorrect - you can only compare constants using IN, not columns. You could do something like this to avoid a lot of typing:&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;where cats(smq01sc, smq02sc, smq03sc, smq04sc, smq05sc, smq06sc,smq07sc, smq08sc,smq09sc, smq10sc) contains 'Broad' &lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;That assumes one or more of the columns contains 'Broad'.&lt;/P&gt;</description>
      <pubDate>Fri, 26 Apr 2024 23:39:37 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Proc-sql-creating-new-table-not-working/m-p/926111#M364414</guid>
      <dc:creator>SASKiwi</dc:creator>
      <dc:date>2024-04-26T23:39:37Z</dc:date>
    </item>
    <item>
      <title>Re: Proc sql-creating new table not working</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Proc-sql-creating-new-table-not-working/m-p/926118#M364421</link>
      <description>&lt;P&gt;Below should work.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;With&amp;nbsp;&lt;EM&gt;Broad&lt;/EM&gt; as search string use findW() if you search for the exact word, use find() if you search for strings that contain the search string (example: Broadcaster).&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Both the find() and findw() function allow for case insensitive search (via &lt;EM&gt;i&lt;/EM&gt; parameter).&lt;/P&gt;
&lt;P&gt;If you only need to search through variables if they contain exactly the string you search for then the whichc() function is another option.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;1. Create sample data&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data snpm;
  usubjid+1;
  array set1{*} $20 smq01nam smq02nam smq03nam smq04nam smq05nam smq06nam smq07nam smq08nam smq09nam smq10nam (10*'A');
  array set2{*} $20 smq01sc  smq02sc  smq03sc  smq04sc  smq05sc  smq06sc  smq07sc  smq08sc  smq09sc  smq10sc  (10*'B');
  array other{*} aedecod aebodsys trt01an;
  output;
  usubjid+1;
  smq04sc='Broadcaster';
  output;
  usubjid+1;
  smq04sc='Broad';
  output; output;
  usubjid+1;
  call missing(of set1[*]);
  output;
run;&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;2. SQL closest to the code you shared&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;proc sql;
/*  create table ae as*/
    select distinct 
      usubjid 
      ,aedecod
      ,catx('@', smq01nam, smq02nam, smq03nam, smq04nam, smq05nam, smq06nam, smq07nam, smq08nam,smq09nam, smq10nam))
      /*,hashing('md5',catx('@', smq01nam, smq02nam, smq03nam, smq04nam, smq05nam, smq06nam, smq07nam, smq08nam,smq09nam, smq10nam)) as digest length=32*/
      ,aebodsys 
      ,trt01an
    from snpm
    where 
      findw(
              catx('@', smq01sc, smq02sc, smq03sc, smq04sc, smq05sc, smq06sc, smq07sc, smq08sc, smq09sc, smq10sc)
              ,'Broad','@','i'
            )
      and 
      cmiss(smq01nam, smq02nam, smq03nam, smq04nam, smq05nam, smq06nam, smq07nam, smq08nam,smq09nam, smq10nam) ne 10
    ;
quit;&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;3. Code variation assuming that you only need the concatenated string for de-duping but don't want to write it to the target table&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;proc sql;
/*  create table ae(drop=n_dups) as*/
    select  
       usubjid 
      ,aedecod
      ,aebodsys 
      ,trt01an
      ,count(*) as n_dups
    from snpm
    where 
/*      findw(*/
/*              catx('@', smq01sc, smq02sc, smq03sc, smq04sc, smq05sc, smq06sc, smq07sc, smq08sc, smq09sc, smq10sc)*/
/*              ,'Broad','@','i'*/
/*            )*/

/*      find(*/
/*              catx('@', smq01sc, smq02sc, smq03sc, smq04sc, smq05sc, smq06sc, smq07sc, smq08sc, smq09sc, smq10sc)*/
/*              ,'Broad','i'*/
/*            )*/

      whichc('Broad',smq01sc, smq02sc, smq03sc, smq04sc, smq05sc, smq06sc, smq07sc, smq08sc, smq09sc, smq10sc)&amp;gt;0
      and 
      cmiss(smq01nam, smq02nam, smq03nam, smq04nam, smq05nam, smq06nam, smq07nam, smq08nam,smq09nam, smq10nam) ne 10
    group by 
       usubjid 
      ,aedecod
      ,aebodsys 
      ,trt01an
      ,smq01nam, smq02nam, smq03nam, smq04nam, smq05nam, smq06nam, smq07nam, smq08nam,smq09nam, smq10nam
    ;
quit;&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Sat, 27 Apr 2024 01:45:59 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Proc-sql-creating-new-table-not-working/m-p/926118#M364421</guid>
      <dc:creator>Patrick</dc:creator>
      <dc:date>2024-04-27T01:45:59Z</dc:date>
    </item>
    <item>
      <title>Re: Proc sql-creating new table not working</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Proc-sql-creating-new-table-not-working/m-p/926296#M364523</link>
      <description>&lt;P&gt;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/13976"&gt;@SASKiwi&lt;/a&gt;&amp;nbsp; Thank you, this worked.&lt;/P&gt;</description>
      <pubDate>Mon, 29 Apr 2024 13:27:46 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Proc-sql-creating-new-table-not-working/m-p/926296#M364523</guid>
      <dc:creator>billi_billi</dc:creator>
      <dc:date>2024-04-29T13:27:46Z</dc:date>
    </item>
  </channel>
</rss>

