2010-09-15 96 views
4

我求求你不要我为什么要使用SQL Server 6.5中在SQL Server中选择TOP 1 6.5

在SQL Server 6.5中没有SELECT TOP命令问我,你猜怎么着,我需要它:)

我需要像

Select top 1 * from persons 
where name ='Mike' 
order by id desc 

我试着SET ROWCOUNT 1东西进行的东西,但在这种情况下,你不能使用order。

我结束了

Select top 1 * from persons 
where id = (select max(id) from persons where name ='Mike') 

必须有更好的办法!

有什么建议吗?

Thanx!

+1

我感觉到你的痛苦,但我认为你被困在奇怪的语法中。 – HLGEM 2010-09-15 13:33:40

+2

在这里,我只是抱怨被困在MS SQL 2000.猜猜我现在闭嘴:) – LittleBobbyTables 2010-09-15 13:44:10

回答

0

SET ROWCOUNT 1 SELECT语句之前,没有测试,因为我没有MSSQL 6.5(幸运我猜)

+0

试过,但你不能使用顺序时设置rowcount:/ – 100r 2010-09-16 01:11:06

+1

我不知道你是否可以做一个rowcount,并在里面有一个选择与您的订单 – Spooks 2010-09-16 15:15:23

2

尝试选择到一个临时表,通过ID排序,然后设置ROWCOUNT 1和选择*来自临时表。 (这应该适用于任何使用SET ROWCOUNT N的顶级N,而现有的解决方案只适用于顶级1.)

+0

我只需要顶1,所以我很好。但什么是更昂贵的嵌套选择表或临时表? – 100r 2010-09-16 01:14:19

+0

@ 100r,我认为正确的答案是“它取决于”。唯一可以确定的方法是尝试运行两种方法,看看它们是如何比较的。 – 2010-09-16 09:49:44