SAS Proc SQL Trim不工作?

时间:2015-01-09 15:34:28

标签: sas trim proc-sql

我有一个看似非常简单的问题(可能是......),但我无法让它发挥作用。

变量'名称'在数据集'列表'长度为20.我希望有条件地将值选择为宏变量,但通常所需的值小于指定的长度。这会在最后留下尾随空白,这是我不能拥有的,因为它们会破坏宏变量的未来调用。

我尝试过修剪,压缩,btrim,左(修剪和其他解决方案,但似乎没有任何东西能给我我想要的东西(这是乔没有空白)。这看起来像它应该比它更容易.....帮助。

data list;
    length id 8 name $20;
    input id name $;
cards;
1 reallylongname
2 Joe
;
run;

proc sql;
    select trim(name) into :nameselected
    from list
    where id=2;
run;

%put ....&nameselected....;

2 个答案:

答案 0 :(得分:14)

实际上,有一个选项,TRIMMED,可以做你想做的事。

proc sql noprint;
    select name into :nameselected TRIMMED
    from list
    where id=2;
quit;

另外,PROC SQLQUIT;结束,而不是RUN;

答案 1 :(得分:6)

如果指定分隔符,则可以使用:

proc sql;
    select trim(name) into :nameselected separated by ''
    from list
    where id=2;
run;