使用SAS宏变量并将其链接到Proc SQL中的包含运算符

时间:2015-07-31 10:25:26

标签: sql macros sas contains proc-sql

我有一个名为Tabling的表。

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

如何编写一段代码的Proc SQL代码,我创建一个变量Saying %let Variable = "Price",然后说出类似的内容

我正在创建一个名为选择的表来自Tabling

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

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

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

1 个答案:

答案 0 :(得分:0)

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

break

请删除那些" ",或者它们将是你的宏变量的一部分(变量应该包含Price,而不是" Price",这不是datastep代码,这是宏语言)。

您的宏变量将使用&符号而不是百分比来声明。因此,您不会%let variable = Price; 而是Where Name contains %variable;

还要考虑对每个字符串进行整理,字符串比较区分大小写," Price"与" price"不同,因此您可以使用where Name contains "&variable";

你真的需要阅读一本书或宏语言编程指南来了解你在做什么。 如果您需要进一步澄清,请与我们联系。