【问题标题】:Using a SAS Macro Variable and link it to the Contain Operator in Proc SQL使用 SAS 宏变量并将其链接到 Proc SQL 中的包含运算符
【发布时间】:2015-07-31 10:25:26
【问题描述】:

我有一张名为 Tableling 的表格。

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

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

我正在创建一个名为 selection from Tabling 的表格

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

我需要的是 Proc SQL 与宏变量相关联,而无需在 SQL 代码中明确说明“价格”。

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

【问题讨论】:

  • 请使用 CTRL+K 格式化文本代码。

标签: sql macros sas contains proc-sql


【解决方案1】:

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

%let variable = Price;

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

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

还要考虑将每个字符串大写,字符串比较区分大小写,“价格”与“价格”不同,因此您可以使用where upcase(name) contains upcase("&variable");

您确实需要阅读一本书或一本宏语言编程指南来了解您在做什么。 如果您需要任何进一步的说明,请告诉我。

【讨论】:

  • 非常感谢您的帮助。将遵循您在格式化和宏语言编程方面的提示。
猜你喜欢
  • 2023-03-28
  • 2022-01-17
  • 2017-10-04
  • 2015-10-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多