<?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 selecting only character variables in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/selecting-only-character-variables/m-p/459158#M116590</link>
    <description>&lt;P&gt;Hello:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I am trying to get only character variables using the following program.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;%macro m;
%let dsid = %sysfunc(open(sashelp.class));

proc sql noprint;
	create table t1 as
	 select 

	 %do i =  1 %to  5;

	  %if %sysfunc(vartype(&amp;amp;dsid, &amp;amp;i)) = 'C' %then  %sysfunc(varname(&amp;amp;dsid, &amp;amp;i)),;

	  %end;

	 from sashelp.class;
quit;

%mend m;
%m&lt;/CODE&gt;&lt;/PRE&gt;</description>
    <pubDate>Wed, 02 May 2018 00:51:15 GMT</pubDate>
    <dc:creator>SAS_inquisitive</dc:creator>
    <dc:date>2018-05-02T00:51:15Z</dc:date>
    <item>
      <title>selecting only character variables</title>
      <link>https://communities.sas.com/t5/SAS-Programming/selecting-only-character-variables/m-p/459158#M116590</link>
      <description>&lt;P&gt;Hello:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I am trying to get only character variables using the following program.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;%macro m;
%let dsid = %sysfunc(open(sashelp.class));

proc sql noprint;
	create table t1 as
	 select 

	 %do i =  1 %to  5;

	  %if %sysfunc(vartype(&amp;amp;dsid, &amp;amp;i)) = 'C' %then  %sysfunc(varname(&amp;amp;dsid, &amp;amp;i)),;

	  %end;

	 from sashelp.class;
quit;

%mend m;
%m&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Wed, 02 May 2018 00:51:15 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/selecting-only-character-variables/m-p/459158#M116590</guid>
      <dc:creator>SAS_inquisitive</dc:creator>
      <dc:date>2018-05-02T00:51:15Z</dc:date>
    </item>
    <item>
      <title>Re: selecting only character variables</title>
      <link>https://communities.sas.com/t5/SAS-Programming/selecting-only-character-variables/m-p/459159#M116591</link>
      <description>&lt;P&gt;Do you have to use SQL? It doesn't support variable lists which is much easier in a data step.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;If you absolutely have to it's probably easier to hit the sashelp.vcolumn table first and get the list of variables and the use that in your query.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data class;
set sashelp.class;
keep _character_;
run;&lt;/CODE&gt;&lt;/PRE&gt;
&lt;BLOCKQUOTE&gt;&lt;HR /&gt;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/64404"&gt;@SAS_inquisitive&lt;/a&gt; wrote:&lt;BR /&gt;
&lt;P&gt;Hello:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I am trying to get only character variables using the following program.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;%macro m;
%let dsid = %sysfunc(open(sashelp.class));

proc sql noprint;
	create table t1 as
	 select 

	 %do i =  1 %to  5;

	  %if %sysfunc(vartype(&amp;amp;dsid, &amp;amp;i)) = 'C' %then  %sysfunc(varname(&amp;amp;dsid, &amp;amp;i)),;

	  %end;

	 from sashelp.class;
quit;

%mend m;
%m&lt;/CODE&gt;&lt;/PRE&gt;
&lt;HR /&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Wed, 02 May 2018 01:00:11 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/selecting-only-character-variables/m-p/459159#M116591</guid>
      <dc:creator>Reeza</dc:creator>
      <dc:date>2018-05-02T01:00:11Z</dc:date>
    </item>
    <item>
      <title>Re: selecting only character variables</title>
      <link>https://communities.sas.com/t5/SAS-Programming/selecting-only-character-variables/m-p/459161#M116592</link>
      <description>&lt;P&gt;You can use dataset options inside proc sql.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data have;
retain
	num1-num3 0
	char1-char3 'a'
	num4-num6 1
	char4-char6 'b';
run;

proc sql;
create table want as
select *
from have (keep=_character_)
;quit;&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Wed, 02 May 2018 01:02:58 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/selecting-only-character-variables/m-p/459161#M116592</guid>
      <dc:creator>JChambo</dc:creator>
      <dc:date>2018-05-02T01:02:58Z</dc:date>
    </item>
    <item>
      <title>Re: selecting only character variables</title>
      <link>https://communities.sas.com/t5/SAS-Programming/selecting-only-character-variables/m-p/459271#M116634</link>
      <description>&lt;P&gt;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/13879"&gt;@Reeza&lt;/a&gt;&amp;nbsp;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/207595"&gt;@JChambo&lt;/a&gt;, I was trying to see if Variable functions can used to get the list of variables in SELECT statements in PROC SQL.&lt;/P&gt;</description>
      <pubDate>Wed, 02 May 2018 12:13:26 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/selecting-only-character-variables/m-p/459271#M116634</guid>
      <dc:creator>SAS_inquisitive</dc:creator>
      <dc:date>2018-05-02T12:13:26Z</dc:date>
    </item>
    <item>
      <title>Re: selecting only character variables</title>
      <link>https://communities.sas.com/t5/SAS-Programming/selecting-only-character-variables/m-p/459284#M116636</link>
      <description>&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;proc sql;
		SELECT name into :Charvlist separated by ' '
        from dictionary.columns
        where memname = upcase("Cars")
		and libname =upcase("SASHElp")
		and type='char' 
;QUIT;


%Put &amp;amp;Charvlist;&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Wed, 02 May 2018 12:58:54 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/selecting-only-character-variables/m-p/459284#M116636</guid>
      <dc:creator>emrancaan</dc:creator>
      <dc:date>2018-05-02T12:58:54Z</dc:date>
    </item>
    <item>
      <title>Re: selecting only character variables</title>
      <link>https://communities.sas.com/t5/SAS-Programming/selecting-only-character-variables/m-p/459300#M116645</link>
      <description>&lt;P&gt;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/144906"&gt;@emrancaan&lt;/a&gt;&amp;nbsp;I know this way. I was looking for using variable functions as I did post originally.&lt;/P&gt;</description>
      <pubDate>Wed, 02 May 2018 13:29:55 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/selecting-only-character-variables/m-p/459300#M116645</guid>
      <dc:creator>SAS_inquisitive</dc:creator>
      <dc:date>2018-05-02T13:29:55Z</dc:date>
    </item>
    <item>
      <title>Re: selecting only character variables</title>
      <link>https://communities.sas.com/t5/SAS-Programming/selecting-only-character-variables/m-p/459340#M116653</link>
      <description>&lt;P&gt;1. You did not say that.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;2. You need to account for the last variable which will require no comma, otherwise, this sort of works:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;3. You do not put quotation marks around macro comparisons - which is your main issue.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;4. Use the debugging options to help you see what is being generated, the log showed no variables so it meant that the %IF condition was not working.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;options mprint symbolgen;

%macro m;
%let dsid = %sysfunc(open(sashelp.class));

proc sql noprint;
	create table t1 as
	 select 

	 %do i =  1 %to  5;

	  %if %sysfunc(vartype(&amp;amp;dsid, &amp;amp;i)) = C %then %put  %sysfunc(varname(&amp;amp;dsid, &amp;amp;i)) ,;

	  %end;

	 from sashelp.class;
quit;

%mend m;
%m;&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Wed, 02 May 2018 14:48:28 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/selecting-only-character-variables/m-p/459340#M116653</guid>
      <dc:creator>Reeza</dc:creator>
      <dc:date>2018-05-02T14:48:28Z</dc:date>
    </item>
    <item>
      <title>Re: selecting only character variables</title>
      <link>https://communities.sas.com/t5/SAS-Programming/selecting-only-character-variables/m-p/459342#M116654</link>
      <description>&lt;P&gt;Looks like I made it&amp;nbsp; to work. Thanks all.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;%macro m;

	proc sql noprint;
		create table t1 as
			select 

		%let dsid = %sysfunc(open(sashelp.class));
		%let varlist=;

		%do i=1 %to %sysfunc(attrn(&amp;amp;dsid, nvars));
			%if (%sysfunc(vartype(&amp;amp;dsid, &amp;amp;i))= C) %then
				%let varlist=&amp;amp;varlist %sysfunc(varname (&amp;amp;dsid, &amp;amp;i)) %str(,);
			%let varlist_ = %substr(&amp;amp;varlist.,1,%length(&amp;amp;varlist.)-1);
		%end;

		&amp;amp;varlist_


		from sashelp.class;
	quit;

%mend m;

%m&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Wed, 02 May 2018 14:51:12 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/selecting-only-character-variables/m-p/459342#M116654</guid>
      <dc:creator>SAS_inquisitive</dc:creator>
      <dc:date>2018-05-02T14:51:12Z</dc:date>
    </item>
  </channel>
</rss>

