数据表中的数据有10亿左右,先做如下查询,查出价格最高的记录。
表结构等如下:
表名:AAA
数据:ID Name Num
1 P1 400
2 P2 400
3 P3 300
4 P4 200
5 P5 400
6 P6 300
...
结果:ID Name Num
1 P1 400
2 P2 400
5 P5 400
...
- SQL code
/* 我自己也研究了下,下面的语句可以实现功能,但性能不佳 */SELECT Name, Num FROM AAA WHERE Num = (SELECT MAX(Num) FROM AAA)/* 求不用子查询的方法 */
------解决方案--------------------
貌似你这个已经是最简单的了.
或者分两步走.
declare @num as int
set @num = (SELECT MAX(Num) FROM AAA)
select * from aaa where num = @num
------解决方案--------------------
------解决方案--------------------
这样效率上不会有问题的
------解决方案--------------------
lz想多了
------解决方案--------------------
with temp as(
SELECT MAX(Num) as max_num FROM AAA
)
select AAA.* from AAA, temp where AAA.num = temp.max_num