读书人

delphi 中怎么获取SQL n条记录中的第

发布时间: 2013-01-06 15:44:48 作者: rapoo

delphi 中如何获取SQL n条记录中的第n/2条记录
如题:
prd_no prd_mark
1 B10
1 B11
1 B12
3 D6
3 D7
6 U10
如上表,prd_no作为条件,查询结果可能有0、1、2、3、4、5、6等若干条,设记录条数为n,若n为偶数则取第n/2条记录的结果,若n为奇数则取第(n+1)/2条记录的结果,sql语句要如何写?或有什么别的办法
[解决办法]
好像adoquery有recno属性
[解决办法]

declare @Half int
select @Half=(count(*)+1)/2 from TableName order by prd_no,prd_mark
exec('
select top 1* from (select top '+@Half+' * from TableName order by prd_no,prd_mark
) a order by prd_no desc,prd_mark desc
')

上面是个比较通用的办法,如果你的MSSQL是2005以上版本的话,是可以有更简单办法的(用Row_NUMBER()等函数)

读书人网 >.NET

热点推荐