我有表(供应商)列(sup_status)包含值'A'和'I',现在我选择值'A'使用不存在。但在真实的情况下,主查询返回sup_stauts 'A'和'I',因此我需要使用not exists选择sup_status='A'记录。但结果并没有到来。我不想使用not in操作符。
例如
SELECT SUP_STATUS FROM SUPPLIER
SUP_STATUS
A
I
select sup_status from supplier where not exists(select
sup_status from supplier where sup_status='I')
期望输出
SUP_STATUS
A
MAIN QUERY where not exists(select sup_status from supplier
where sup_status='I')
1条答案
按热度按时间enyaitl31#
使用查询时:
然后,子查询与外部查询不相关,因此子查询将搜索表的整个结果集,以查看是否存在供应商状态为
I
的任何行。如果整个结果集中只有一行,则查询将不输出任何内容。如果要将子查询关联到外部查询,则需要在查询中指定。例如,如果你想在
supplier_name
上关联:您还可以使用分析函数,这样就不必使用相关的子查询: