alias Proc sql-SAS 9.3中的特殊字符

alias Proc sql-SAS 9.3中的特殊字符,sas,sas-macro,enterprise-guide,Sas,Sas Macro,Enterprise Guide,我需要在proc sql语句的alsias名称中有一个特殊字符(%和空格) proc sql DQUOTE=ANSI; create table final_data as select a.column1 as XYZ, ((a.colum2/b.colum2)-1) as "% VS LY" from table1 a join table2 b on a.colum3=b.colum3; quit; 根据文档,使用proc sql DQUOTE=ANSI选项应该可行 但是,我在SAS

我需要在proc sql语句的alsias名称中有一个特殊字符(%和空格)

proc sql DQUOTE=ANSI;
create table final_data as
select a.column1 as XYZ, 
((a.colum2/b.colum2)-1) as "% VS LY"
from table1 a
join table2 b on a.colum3=b.colum3;
quit;
根据文档,使用proc sql DQUOTE=ANSI选项应该可行

但是,我在SAS 9.3中遇到了这个错误

错误:值%VS LY不是有效的SAS名称

我该怎么做才能让它工作


提前非常感谢

也许更简单的解决方案是使用标准命名和SAS标签。如果计算值介于0和1之间,还可以添加SAS格式

((a.colum2/b.colum2)-1) as vs_ly_pct label='% VS LY' format=percent5.2
如果确实需要非标准列名,还需要设置

options validvarname = any;

在SQL中的
Proc SQL

之前,别名是用来作为变量引用前缀的,用于告诉变量来自哪个输入表(或子查询)。与查询中的
a
b
类似。您所说的是变量名

SAS变量名称通常限制为下划线和字母数字字符(不能以数字开头),但变量标签可以是任何字符串。只需在名称后指定标签即可

select a.column1 as XYZ
     , ((a.colum2/b.colum2)-1) as var2 '% VS LY'
或者使用SAS特定的
标签=
语法

select a.column1 as XYZ
     , ((a.colum2/b.colum2)-1) as var2 label='% VS LY'