gpt4 book ai didi

sas - 为什么错误的内部查询不会使外部查询错误

转载 作者:行者123 更新时间:2023-12-01 10:19:10 24 4
gpt4 key购买 nike

帮助理解为什么错误的内部查询不会使外部查询出错

以下查询返回 19

proc sql;
select count(distinct name)
from sashelp.class
where name in (select name from sashelp.iris
where species is not missing)
;quit; *returns 19;

但是,我希望它返回一个错误,因为内部查询确实返回了一个错误(因为在 sashelp.iris 中找不到列“name”):

proc sql;    
select name from sashelp.iris
where species is not missing
;quit; *returns an error (column not found);

有人能解释一下为什么我一开始没有收到错误消息的逻辑吗?

最佳答案

您没有限定对 name 的引用,因此它使用了它找到的唯一名为 name 的变量。所以你运行了这个查询:

proc sql;
select count(distinct A.name)
from sashelp.class A
where A.name in
(select A.name
from sashelp.iris B
where B.species is not missing
)
;
quit;

如果您实际上从 IRIS 引用 NAME,您将收到错误消息。

220   proc sql;
221 select count(distinct A.name)
222 from sashelp.class A
223 where A.name in
224 (select B.name
225 from sashelp.iris B
226 where B.species is not missing
227 )
228 ;
ERROR: Column name could not be found in the table/view identified with the correlation name B.
ERROR: Unresolved reference to table/correlation name B.
229 quit;

关于sas - 为什么错误的内部查询不会使外部查询错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56954914/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com