当我为某个特定的WHERE执行SELECT...INTO
语句时,会导致最后有一个随机单引号。我正在使用通过SAS的proc sql运行以下代码SAS:SELECT ... INTO导致随机单引号添加到结尾
proc sql noprint;
SELECT DISTINCT PrimaryAgent, PrimaryAgentName
INTO :AgentID separated by '|', :AgentName separated by '|'
FROM test.OUTPUT_REPORTDATATAB
WHERE Region = "Western" AND District = "Saskatchewan";
quit;
AgentID将使所有值由|像往常一样,但是当我去做一个%put时,AgentName将在最后有一个单引号(例如test | test2 | test3')。
这个问题只发生在区域和区域的组合上,其他任何组合都没问题。
我确实注意到这个区域和区域组合位于数据集的底部,但我想如果这是问题的根源,它将对AgentID和AgentName引发同样的问题。
关于可能导致此问题的任何想法?或者我可以删除这个单引号?
我试过substr
和translate
,但只要我尝试通过我的&AgentName
。它打破了功能(说我错过了括号)。
我甚至尝试添加一个逃脱和非转义单引号到前面,所以它至少有匹配的报价,但似乎并没有任何工作。
有多少条记录符合您的查询? AgentID或AgentName字段的平均长度是多少? SAS宏变量只能有65K长。 – Tom
20条记录匹配查询,AgentID长度为6个字符,AgentName不同,但没有多于50个字符 – sampson7185
尝试更改查询顺序(所以'test3'不会结束)。报价是否仍然出现在那里? – Joe