= ALL(WHERE子句中的错误条件)

问题描述 投票:1回答:1

让有一个表Tab1

Create table Tab1 (
Names Varchar2(40) , 
Sal Decimal (18,2)
                   );
Insert into Tab1 values 
(‘A’ , 1000);
 Insert into Tab1 values 
(‘B’ , 1500);
Insert into Tab1 values 
(‘C’ , 1200);
Insert into Tab1 values 
(‘D’ , 2000);

问题陈述:

Select * From Tab1 where 
Sal = ALL (Select sal
From Tab1 where Sal = 3000)

输出:

All rows from Tab1 came as output 

我的理解:

[如果子查询返回0值,则主查询也应返回0值,但在这种情况下,当子查询中的WHERE语句为FALSE时,它将返回所有行。虽然为TRUE时效果很好,但我无法理解为什么FALSE时它会抛出所有行]

让有一个表Tab1创建表Tab1(名称Varchar2(40),Sal Decimal(18,2));插入Tab1值(“ A”,1000);插入Tab1值(“ B”,1500);插入...

sql plsql plsqldeveloper teradata-sql-assistant
1个回答
1
投票
© www.soinside.com 2019 - 2024. All rights reserved.