我在SAS中连接到一个sql server表,其中表名为'Additions_to_Aggregate $'。引号是名称的一部分。所以在我的SAS编辑器中,当我尝试在部分代码中运行以下内容时,我返回错误,因为SAS将其作为字符串而不是表名称读取。
proc sql;
Create Table Name_Compare as
SELECT DISTINCT a.Insured_Name, agg.Policy_Holder_Name, a.Segment
FROM MySQLLib.ADV_Portfolio_Split as a
LEFT JOIN MySQLLib.'Additions_to_Aggregate$'n.data as agg
on a.Insured_Name = agg.Policy_Holder_Name;
quit;
有没有办法强制SAS将表名作为文字字符串读取,或者您是否有其他解决方案的想法?我已经尝试在SAS资源管理器中重命名表,但是我收到此错误并且不知道如何解释它。
答案 0 :(得分:1)
您正在寻找名字文字。之一:
LEFT JOIN MySQL.'Additions_to_Aggregate$'n
或
LEFT JOIN MySQL."'Additions_to_Aggregate$'"n
取决于SAS如何处理DBMS连接中的引号;它可能需要也可能不需要第二对外引号。如果由于某种原因你需要单引号(SAS对于宏分辨率之外的单/双没有任何特殊含义),你可以加倍:
LEFT JOIN MySQL.'''Additions_to_Aggregate$'''n