使用 SAS 宏变量并将其 link 用于 Proc SQL 中的包含运算符

Using a SAS Macro Variable and link it to the Contain Operator in Proc SQL

我有一个 table 叫做 Tabling。

Name                  Number
Price A               10
Price B               11
Quantity A            12
Quantity B            13

如何编写 Proc SQL 代码片段,其中我创建了一个变量 Saying %let Variable = "Price" 然后说出这样的话

我正在创建一个 table 名为 selection from Tabling

Proc SQL;
Create Table Selection As
Select * 
From Tabling
Where Name Contains %Variable;
Quit;

我需要的是让 Proc SQL 与宏变量关联,而无需在 SQL 代码中明确说明 "Price"。

请帮我解决这个问题。先感谢您。

您正在寻找由您的代码创建的宏变量:

%let variable = Price;

请删除那些“ ”,否则它们将成为您的宏变量的一部分(变量应包含价格,而不是 "Price",这不是数据步骤代码,这是宏语言)。

您的宏变量将使用与号声明,而不是百分比。因此,您不会有 Where Name contains %variable;,而是 where Name contains "&variable";

还要考虑将每个字符串大写,字符串比较区分大小写,"Price"不同于"price",因此可以使用where upcase(name) contains upcase("&variable"); .

您真的需要通读一本书或宏语言编程指南才能理解您在做什么。 如果您需要任何进一步的说明,请告诉我。