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排序
...全文
1313打赏收藏
请问如果提取数据第n大的记录
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排序
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'