求一條SQL語句或存儲過程

wggygah5 2008-07-07 06:21:51
test表里有如下字段
ID Name Class
1 Billy 1
2 Henry 1
3 Lily 2
4 Kevin 1
5 Jerry 2
6 Jimmy 2
7 Terry 3
要求:如果Class相同,則最多查詢出兩條Class相同的數據。
如上述數據查詢出的結果為(按ID倒序):
ID Name Class
7 Terry 3
6 Jimmy 2
5 Jerry 2
4 Kevin 1
2 Henry 1
...全文
72 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
conan304 2008-07-07
  • 打赏
  • 举报
回复
declare @t table([ID] int identity(1,1),[Name] varchar(10),class int)
insert @t([Name],class) select 'Billy',1
union all select 'Henry',1
union all select 'Lily',2
union all select 'Kevin',1
union all select 'Jerry',2
union all select 'Jimmy',2
union all select 'Terry',3

select * from @t

select * from @t t
where id in(select top 2 id from @t where t.class=class order by id desc)
order by id desc

/*
所影响的行数为 7 行)

ID Name class
----------- ---------- -----------
1 Billy 1
2 Henry 1
3 Lily 2
4 Kevin 1
5 Jerry 2
6 Jimmy 2
7 Terry 3

(所影响的行数为 7 行)

ID Name class
----------- ---------- -----------
7 Terry 3
6 Jimmy 2
5 Jerry 2
4 Kevin 1
2 Henry 1

(所影响的行数为 5 行)

*/
whoami333 2008-07-07
  • 打赏
  • 举报
回复
在存储过程里用游标实现吧。
万小萌 2008-07-07
  • 打赏
  • 举报
回复
select a.* 
from test a
where id
in(
select top 2 id
from test
where class=a.class)
order by id desc
wggygah5 2008-07-07
  • 打赏
  • 举报
回复
高手們都吃飯去了嗎?

62,197

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

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