Sql 从employees表中选择前10名薪资
我编写了以下sql查询:Sql 从employees表中选择前10名薪资,sql,oracle,Sql,Oracle,我编写了以下sql查询: select first_name, salary from employees where salary in( select distinct top(10) salary from employees order by salary disc ); 当我运行它时,我得到了以下错误: SQL错误:ORA-00907:缺少右括号 90700000-缺少右括号 是什么导致了错误?试试这个=== 按薪资顺序按薪资描述限制10选择“从员工组中选择薪资”中的“从员工中
select first_name, salary
from employees
where salary in( select distinct top(10) salary from employees order by salary disc );
当我运行它时,我得到了以下错误:
SQL错误:ORA-00907:缺少右括号
90700000-缺少右括号
是什么导致了错误?试试这个===
按薪资顺序按薪资描述限制10选择“从员工组中选择薪资”中的“从员工中选择薪资”中的“从员工中选择薪资”第一个\ u名称 试试这个===
按薪资顺序按薪资描述限制10选择“从员工组中选择薪资”中的“从员工中选择薪资”中的“从员工中选择薪资”第一个\ u名称 我认为问题在于top的使用,它是SQL Server而不是Oracle 改为使用秩以合理的顺序获得工资,并获得前10个:
select v.first_name, v.salary
from ( select first_name, salary, rank() over (order by salary desc) r from employees) v
where v.r <= 10
我认为问题在于使用top,它是sqlserver而不是Oracle 改为使用秩以合理的顺序获得工资,并获得前10个:
select v.first_name, v.salary
from ( select first_name, salary, rank() over (order by salary desc) r from employees) v
where v.r <= 10
在Oracle中,Top-N查询通常以这种方式执行:
select * from (
select first_name, salary
from employees order by salary desc
) where rownum <= 10
这一项可以让您获得前10名的薪资。在Oracle中,top-N查询通常是这样执行的:
select * from (
select first_name, salary
from employees order by salary desc
) where rownum <= 10
这一项可以让你获得前十名的薪水。试试-
SELECT first_name, salary
( select first_name, salary
from employees
order by salary Desc)
where rownum <= 10
试试-
下面的查询在Oracle中工作
通过sal desc从emp order中选择*from select*,其中rownum下面的查询在Oracle中工作
select*from select*from emp order by sal desc,其中rownumIs为desc刻录了一列或一个错售?这可能是您出错的原因。可能是重复的,请在子查询中不使用order by子句进行尝试。disc是desc的列还是错误销售?这可能是导致错误的原因。在子查询中不使用order by子句的情况下,可能会重复。LIMIT用于MySQL,这是ORACLE。LIMIT用于MySQL,这是ORACLE。