为什么要使用';NA';=是否有可能在SAS中返回一组值?
我有一个关于以下代码的快速问题。为什么我们可以对子查询使用为什么要使用';NA';=是否有可能在SAS中返回一组值?,sas,Sas,我有一个关于以下代码的快速问题。为什么我们可以对子查询使用'NA'=?我的意思是,子查询可能返回一组值,而不是单个值,对吗?谁能告诉我原因吗?非常感谢您的时间和关注 proc sql; select lastname, first name from sasuser.staffmaster where 'NA' = (select jobcategory from sasuser.supervisors where staffmast
'NA'=
?我的意思是,子查询可能返回一组值,而不是单个值,对吗?谁能告诉我原因吗?非常感谢您的时间和关注
proc sql;
select lastname, first name
from sasuser.staffmaster
where 'NA' =
(select jobcategory
from sasuser.supervisors
where staffmaster.empid = supervisors.empid);
quit;
再次感谢。假设
EMPID
是一个员工的唯一ID(我希望是?),并且每个员工只有一个主管,则该查询每次应解析为一行。(当然,从外部查询返回的每一行都有一行,这一点很重要。将其视为一个联接—基本上就是这样,一个措辞有点奇怪的联接,SQL解析器通常会将其转换为实际联接。)
但是,一般来说,它可以解析为多行。SAS将允许您执行查询,如果它只返回一行,它就可以工作;如果返回2+行,则失败。正如昆廷在评论中指出的,这是一个。你的问题标题与你的问题不匹配?这是一个“相关子查询”,对吗?对于OP来说,这可能是一个有用的术语。我总是觉得很难读。