在PROC SQL错误中使用WHERE

时间:2016-05-05 20:25:23

标签: sas proc-sql

目前,我试图过滤输出,只显示折扣大于或等于60%的产品。变量折扣以50%,60%等格式列出所有值。

PROC SQL;
SELECT discount.Product_ID,Product_Name,Start_Date,End_Date,Discount
 FROM Final.discount AS d, Final.product_dim AS p
 WHERE d.Product_ID=p.Product_ID
 AND Discount >= 60%;
QUIT;

我不知道为什么这不起作用,但是日志中的错误告诉我百分号无法识别?我如何解决这个问题以获得我想要的输出?

1 个答案:

答案 0 :(得分:1)

假设变量是数字且应用了PERCENTw.d格式(很可能PERCENT5.给出了显示),你可以这样写:

Discount >= 0.6;

PERCENTw.d格式显示0到1之间的数字为0% - 100%。

如果您的变量是字符,那么您可能需要先将其转换为数字(因为'100%' > '60%'为false)。

input(Discount, PERCENT5.) >= 0.6

Rick Wicklin在the Do Loop的博文中详细介绍了这一点。