SAS Proc SQL Trim 不工作?
SAS Proc SQL Trim not working?
我有一个看起来很简单的问题(可能是...),但我无法让它工作。
数据集'list'中的变量'name'的长度为20,我希望有条件的将select值赋值到一个宏变量中,但往往想要的值小于分配的长度。这会在末尾留下尾随空白,这是我不能拥有的,因为它们会破坏宏变量的未来调用。
我已经尝试了 trim、压缩、btrim、left(trim 和其他解决方案,但似乎没有任何东西能满足我的需求('Joe'没有空格)。这看起来应该比实际更容易.....帮助。
data list;
length id 8 name ;
input id name $;
cards;
1 reallylongname
2 Joe
;
run;
proc sql;
select trim(name) into :nameselected
from list
where id=2;
run;
%put ....&nameselected....;
如果指定分隔符,它会起作用:
proc sql;
select trim(name) into :nameselected separated by ''
from list
where id=2;
run;
实际上,有一个选项,TRIMMED,可以做你想做的事。
proc sql noprint;
select name into :nameselected TRIMMED
from list
where id=2;
quit;
此外,PROC SQL
的结尾是 QUIT;
,而不是 RUN;
。
我有一个看起来很简单的问题(可能是...),但我无法让它工作。
数据集'list'中的变量'name'的长度为20,我希望有条件的将select值赋值到一个宏变量中,但往往想要的值小于分配的长度。这会在末尾留下尾随空白,这是我不能拥有的,因为它们会破坏宏变量的未来调用。
我已经尝试了 trim、压缩、btrim、left(trim 和其他解决方案,但似乎没有任何东西能满足我的需求('Joe'没有空格)。这看起来应该比实际更容易.....帮助。
data list;
length id 8 name ;
input id name $;
cards;
1 reallylongname
2 Joe
;
run;
proc sql;
select trim(name) into :nameselected
from list
where id=2;
run;
%put ....&nameselected....;
如果指定分隔符,它会起作用:
proc sql;
select trim(name) into :nameselected separated by ''
from list
where id=2;
run;
实际上,有一个选项,TRIMMED,可以做你想做的事。
proc sql noprint;
select name into :nameselected TRIMMED
from list
where id=2;
quit;
此外,PROC SQL
的结尾是 QUIT;
,而不是 RUN;
。