2

如何PROC SQL在 SAS 中使用名称(“库名称”)中带有空格的列?

proc sql outobs=10;
    select *
    from sashelp.vtable 
    where library name = xxx
    ;
run;

我试过:

proc sql outobs=10;
    select *
    from sashelp.vtable 
    where 'Libname'n = test_lin;
quit;

proc sql outobs=10;
    select *
    from sashelp.vtable 
    where 'library name'n = test_lin;
quit;

proc sql outobs=10;
    select *
    from sashelp.vtable 
    where libname = test_lin;
quit;

错误:在贡献表中未找到以下列:test_lin。

sashelp.vtable

变量的名称:libname

变量标签:Library Name

4

3 回答 3

10

根据文档 - SAS Name Literals

proc sql outobs=10;
    select *
    from sashelp.vtable 
    where 'library name'n = xxx
    ;
run;

SAS 名称文字是一个名称标记,表示为引号内的字符串,后跟大写或小写字母n。...您只能将名称文字用于变量、语句标签以及DBMS 列和表名称

于 2016-06-27T08:35:07.620 回答
1

您需要设置DQUOTE=ANSI(默认为DQUOTE=SAS),然后您就可以对名称使用引号:"library name"

您可以在此处找到详细信息:http: //support.sas.com/documentation/cdl/en/proc/61895/HTML/default/viewer.htm#a002473669.htm

于 2016-06-27T08:35:36.903 回答
0

尝试使用 `` 标记...或尝试使用括号 []... 所以它会像library name或 [图书馆名称];

select *
from sashelp.vtable 
where `library name` = xxx or [library name] = xxx;
于 2016-06-27T09:02:07.000 回答