SAS通过Merge实现SQL中in操作

2021/10/23 2:10:36

本文主要是介绍SAS通过Merge实现SQL中in操作,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

场景

假设有某班学生名单列表(小表)name_list(name id),以及全校学生信息数据表(大表)student_info(name id parent address email),现在需要根据全校学生名单列表name_list,获取班级名单中学号id对应学生的信息。

SQL代码

select * from student_info t1
where t1.name in (select name from name_list)

SAS代码实现

  • 依据学号id对两个数据表进行排序,排序后才可以进行Merge操作
proc sort data=name_list;
by id;
run;

proc sort data=student_info;
by id;
run;
  • 使用Merge操作进行筛选匹配
data class_student_info;
merge name_list(in=a) student_info(in=b);
by id;
if (a=1 & b=1);
run;
  • 其中in=a表示a为是否在name_list存在该观测,若存在则a为1,若不存在则为0


这篇关于SAS通过Merge实现SQL中in操作的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程