首页 > 解决方案 > PROC SQL中WHERE IN子句的下限和上限?

问题描述

如果我首先定义了一个名为“seat_number_list”的座位号宏列表变量,然后我写

<

proc sql number;

select Seat_Number
from my_sas.names_and_wages_list
where Seat_Number in (2, &seat_number_list, 11) 

>

这是否意味着它将仅选择从 2 到 11 的座位号,包括我的列表变量中包含的所有座位号)?2 和 11 是选择的下限和上限吗?

标签: sqlwhere-clauseproc-sql

解决方案


如果此代码有效(这取决于宏的实际外观),则将211添加到in列表中。它们根本不是界限。它们只是附加值。

如果你想要界限,那么使用更像这样的逻辑:

where Seat_Number in (&seat_number_list) or
      Seat_Number between 2 and 11

推荐阅读