declare @table as table
(
id int identity(1,1), salary int
)
insert into @table values(1000)
insert into @table values(2000)
insert into @table values(5000)
insert into @table values(4000)
insert into @table values(1000)
insert into @table values(8000)
insert into @table values(9000)
insert into @table values(6000)
insert into @table values(1000)
insert into @table values(7000)
insert into @table values(3000)
select
A.salary
from
@table as A
where
(select count(*)
from @table B
where b.salary < A.salary) > 5
答案 0 :(得分:1)
答案 1 :(得分:0)
在查询中,您将自行加入表格。
并且您正在计算内部表中的记录数,这些记录的数量高于外部表的当前记录。
因此,它将为您提供来自table A
的5条记录,这些记录高于内部查询的5条记录
子查询select count(*) from @table B where b.salary < A.salary
将为您提供薪水少于table A
的记录数
结果就是这样。
答案 2 :(得分:0)
您的查询将返回
5000
8000
9000
6000
7000
因为根据您的查询,它会检查记录是否大于6 表的其他记录。 作为内部查询为你计算它。
如果删除1000的所有条目,结果将更改为
8000
9000
因为现在只有这两个记录比表中的其他6个记录大。