我爱Aspx >> 数据库 >> 查询数据的最大排序问题(只能用一条语句写)查询数据的最大排序问题(只能用一条语句写)
>
CREATE TABLE hard (qu char (11) ,co char (11) ,je numeric(3, 0))
insert into hard values (@#A@#,@#1@#,3)
insert into hard values (@#A@#,@#2@#,4)
insert into hard values (@#A@#,@#4@#,2)
insert into hard values (@#A@#,@#6@#,9)
insert into hard values (@#B@#,@#1@#,4)
insert into hard values (@#B@#,@#2@#,5)
insert into hard values (@#B@#,@#3@#,6)
insert into hard values (@#C@#,@#3@#,4)
insert into hard values (@#C@#,@#6@#,7)
insert into hard values (@#C@#,@#2@#,3)
要求查询出来的结果如下:
qu co je
----------- ----------- -----
A 6 9
A 2 4
B 3 6
B 2 5
C 6 7
C 3 4
就是要按qu分组,每组中取je最大的前2位!!
而且只能用一句sql语句!!!
select * from hard a where (select count(*) from hard b
where a.qu=b.qu and b.je>=a.je)<=2
ORDER BY qu,je DESC
选出一条记录, 然后做循环.
这么写会好懂一些?
select * from hard a where je in (select top 2 je from hard b where a.qu=b.qu order by je)
可以这样写:
select * from hard a where je in (select top 2 je from hard b where a.qu=b.qu order by je desc)
【我对这篇文章有话说?】
MSSQL生成整个数据库的SQL脚本的..[05-22]
在SQLServer中怎么样恢复数据的存..[05-22]
在Linux下访问MSSQLServer数据库[05-22]
用VC程序来创建SQL Server ODBC数..[05-22]
用ADO管理SQL Server数据库及其设..[05-22]
一个完整的SQL SERVER数据库全文..[05-22]
维护SQL Server数据库[05-22]
用sql语句修改数据表中字段 实现..[05-22]
实现千万级数据的分页显示[05-22]
MSSQL数据库:存储过程学习[05-22]
查询结果分页显示的sql语句[05-22]
随机序列的算法[05-22]
MSSQL生成整个数据库的SQL脚本的..[05-22]
执行一个安全的SQL Server安装[05-22]
支持全文检索的SQL Server的扩展[05-22]
怎样获得SQL Server的优化性能[05-22]
怎样发布基于MS SQL Server的程序[05-22]
在SQLServer中怎么样恢复数据的存..[05-22]
在SQL Server中保存和输出图片[05-22]
在SQL Server所在的计算机上运行..[05-22]