我有一个使用proc sql
的传递查询(摘录如下(,其中一些结果名称被修改,因为它们不是有效的 SAS 名称。1A
被_A
取代,2A
被_A0
取代,并进行一些其他的更改。我的问题是:
- 是否有文件解释名称替换规则,例如
2A
变得_A0
? - 我可以更改 SAS 更正名称的方式吗?例如,我可以让
1A
成为_1A
而不是_A
吗?
.
proc sql;
connect to oracle as clc([omitted]);
CREATE table out.bk_ald as
SELECT *
FROM connection to bpm (
SELECT
, "1A"
, "1B"
, "1C"
, "1D"
, "1E"
, "2A"
, "2B"
, "2C"
...
您无法更改算法,我不确定它是否已发布。 但是,您可以在 Oracle 端自行重命名该列。
select * from connection to oracle (select "1A" as "_1A", ...);
或者在 SAS 端重命名。SAS 会将原始名称存储为变量的标签。 您可以查询元数据并使用它来重命名变量。
proc contents data=bk_ald noprint out=contents; run;
proc sql noprint ;
select catx(name,'=',cats('_',label)) into :rename separated by ' '
from contents
where upcase(name) ne upcase(label)
;
quit;
data want ;
set bk_ald;
rename &rename ;
run;