長時間讀者首次提問者。SAS數據整合工作室
使用SAS Data Integration studio,當您在表選項高級選項卡中創建彙總轉換時,您可以自動將代碼添加到代碼中。不幸的是,它增加了一些代碼,導致錯誤的解決方案。把在那裏文本框中輸入以下內容:
TESTFIELD = "TESTVALUE"
創建
%let _INPUT_options = %nrquote(WHERE = %(TESTFIELD = %"TESTVALUE%"%));
在代碼中,使用
proc tabulate data = &_INPUT (&_INPUT_options)
但解析
WHERE = (TESTFIELD = "TESTVALUE")
_
22
ERROR: Syntax error while parsing WHERE clause. ERROR 22-322: Syntax error, expecting one of the following: a name, a quoted string, a numeric constant, a datetime constant, a missing value, (, *, +, -, :, INPUT, NOT, PUT, ^, ~.
我的問題是這樣的:有沒有一種方法來添加一個函數的where語句框,這將允許在這裏正確添加引號?
請注意,所有函數自動添加到where語句時會獲得前面的%,並且我無法控制該語句。這似乎是應該相對容易解決的事情,但我還沒有找到一個簡單的方法。
您是否生成PROC TABULATE代碼?或者那也是由工具產生的?那就是你可以在%UNQUOTE()中添加刪除在%LET語句中添加的宏引用嗎? – Tom
不幸的是,它是自動生成的。我可以調整的唯一部分是where語句的文本框。其他一切都是由此產生的。 – Cliff
在這種情況下,請提供SAS支持憑單。也許有一些選項可以防止DIS添加宏引用。 – Tom