有表 a
id name scorid result
2 张三 001 50
3 李四 005 90
4 张三 004 52
5 王二 003 25
6 麻子 002 62
7 李四 001 21
8 麻子 001 70
14 王五 003 82
16 张三 002 81
有查询语句
1. select * from a b where (select count(1) from a where name=b.name and id>b.id)=1
go
2. select * from a b where (select count(1) from a where name=b.name and id<b.id)=1
go
得到的结果如下
(1) 3 李四 005 90
4 张三 004 52
6 麻子 002 62
(2) 4 张三 004 52
7 李四 001 21
8 麻子 001 70
我想问的是,为什么是这样的结果? (这些查询语句都是没什么意义的,我只是想借上面的查询语句了解一下SQL是怎么执行?)
还有要是改为
select * from a where (select count(1) from a b where name=b.name and id>b.id)=1
得到的结果为空,为什么呢?
[求助]sql 语句是怎么执行的?