當我爲某個特定的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