【发布时间】:2019-11-19 04:59:47
【问题描述】:
我有一个包含多个程序的项目。每个程序都有一个 proc SQL 语句,它将为 WHERE 子句中的条件使用相同的值列表;但是,需要的一个数据库表的列类型是字符类型,而另一个数据库表的列类型是数字。
所以我有一个“客户端 ID”值列表,我想将这些值放入宏变量中,因为这些 ID 可以更改,我想在变量中更改一次,而不是在多个程序中更改。
例如,我像这样设置了这个宏变量,它在查询字符列的 proc SQL 中工作:
%let CLNT_ID_STR = ('179966', '200829', '201104', '211828', '264138');
Proc SQL 部分:
...IN &CLNT_ID_STR.
我想创建另一个宏变量,例如 CLNT_ID_NUM,它采用第一个变量 (CLNT_ID_STR) 但删除引号。
所需输出:(179966, 200829, 201104, 211828, 264138)
Proc SQL 部分:...IN &CLNT_ID_NUM.
我尝试过使用sysfunc、dequote 和translate 函数,但没有弄明白。
【问题讨论】:
标签: sas