请问如果提取数据第n大的记录

billpu 2005-04-25 03:18:11
table1
id, value
1 a
3 b
4 c
5 d
6 e
请问如果提取id(id不重复)第二大的数据 比如上例为3
再请问 如果id有重复的情况下又怎么算比如
id,value,date
1 a 2004-1-1
1 b 2004-2-1
3 b 2004-3-1
4 c 2004-5-1
5 d  2004-6-1
提取的结果为1,b,即如果有相同的id就再按date排序
...全文
131 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
shuayang 2005-04-25
  • 打赏
  • 举报
回复
以上sql语句2种情况都可以处理
shuayang 2005-04-25
  • 打赏
  • 举报
回复
select A.* from 表名 A,
(select top 1 列名 from (select top n 列名 from (select Distinct 列名 from 表名) T1 order by 列名 desc) T2 order by 列名)B
where A.列名=B.列名
xiajianfeng 2005-04-25
  • 打赏
  • 举报
回复
--Try

DECLARE @iNum AS int --取得记录的行号
DECLARE @SQLString NVARCHAR(500) --SQL statement

SET @iNum = 2

SET @SQLString = 'SELECT TOP 1 T.* FROM (SELECT TOP ' + CAST(@iNum AS varchar(4)) + ' * FROM tb2 ORDER BY id, value, date) T ORDER BY T.id DESC, T.value DESC, T.date DESC'

EXEC sp_executesql @SQLString

27,579

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 应用实例
社区管理员
  • 应用实例社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧