sql从同一列中选择多个条件

sql从同一列中选择多个条件,sql,conditional-statements,Sql,Conditional Statements,我有Emp_期间和Emp_工资表。我需要选择薪资高于其他不同条件薪资的数据 Select语句 select * from Employee where Emp_Period >96 and Emp_Salary < (select Emp_Salary from Employee where Emp_Period <24) 小于或大于运算符不能检查多个记录。但在这里,您可以执行类似于

我有Emp_期间和Emp_工资表。我需要选择薪资高于其他不同条件薪资的数据

Select语句

select * 
from Employee 
where Emp_Period >96 
  and Emp_Salary < (select Emp_Salary 
                    from Employee 
                    where Emp_Period <24)

小于或大于运算符不能检查多个记录。但在这里,您可以执行类似于中的高级操作符

演示


啊,谢谢,我需要“任何”来回答这个问题。这是我的密码

select * 
from Employee 
where Emp_Period >96 
  and Emp_Salary <any (select Emp_Salary 
                    from Employee 
                    where Emp_Period <24 )

你需要小心。我倾向于对这种逻辑使用聚合:

e.Emp_Salary > (select max(e2.Emp_Salary)
                from Employee e2
                where e2.Emp_Period < 24
               )
这里不适合任何人


此版本和聚合版本略有不同。如果没有员工与子查询中的条件匹配,则聚合版本为false。如果没有符合条件的员工,则ALL版本为真。目前尚不清楚该问题所要求的版本。

您是否尝试在该条件下使用“Emp_工资”的最高值?一些数据也会有所帮助。欢迎来到堆栈溢出。还请阅读如何提问以及问题是什么?如何从小于或大于的条件中获取数据操作员无法检查多个记录不完全正确。您可以使用它们,但您需要将运算符与all或any组合,例如,其中emp_salary>all select…我曾经使用过此方法,但不起作用。我不知道为什么
e.Emp_Salary > (select max(e2.Emp_Salary)
                from Employee e2
                where e2.Emp_Period < 24
               )
e.Emp_Salary > all (select e2.Emp_Salary
                    from Employee e2
                    where e2.Emp_Period < 24
                   )