使用 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");
.
您真的需要通读一本书或宏语言编程指南才能理解您在做什么。
如果您需要任何进一步的说明,请告诉我。
我有一个 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");
.
您真的需要通读一本书或宏语言编程指南才能理解您在做什么。 如果您需要任何进一步的说明,请告诉我。