SQL游标查询多条语句问题

lovepu 2012-02-21 02:15:40
请问
我想得到 一个表里 多行数据 的一个字段的最大那条数据,
目前只知道 GH=A 其他的都不知道 怎么用游标才取得最大的那个?
如:
XM BH GH
李三 1 A
李三 2 A
李三 3 A
怎么得到 BH 最大的那条数据呢?
...全文
172 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
foxsand 2012-02-21
  • 打赏
  • 举报
回复
create table #ttt(XM nvarchar(50), BH int , GH varchar(50))
insert into #ttt values(N'李三',1,'A')
insert into #ttt values(N'李三',2,'A')
insert into #ttt values(N'李三',3,'A')
insert into #ttt values(N'张四',1,'A')
insert into #ttt values(N'张四',2,'A')
insert into #ttt values(N'王五',1,'B')


select xm,(select count(*)+1 from #ttt where bh>a.bh) as bhpm,bh from #ttt a order by bh desc

结果:
xm bh排名 bh
李三 1 3
李三 2 2
张四 2 2
王五 4 1
李三 4 1
张四 4 1
lovepu 2012-02-21
  • 打赏
  • 举报
回复
不行啊·我用的是SQL2000的查询分析器·· ROW_NUMBER() 没有这个函数啊··
mayuanf 2012-02-21
  • 打赏
  • 举报
回复
[Quote=引用楼主 lovepu 的回复:]
请问
我想得到 一个表里 多行数据 的一个字段的最大那条数据,
目前只知道 GH=A 其他的都不知道 怎么用游标才取得最大的那个?
如:
XM BH GH
李三 1 A
李三 2 A
李三 3 A
怎么得到 BH 最大的那条数据呢?
[/Quote]


写错了


create table #ttt(XM nvarchar(50), BH int , GH varchar(50))
insert into #ttt values(N'李三',1,'A')
insert into #ttt values(N'李三',2,'A')
insert into #ttt values(N'李三',3,'A')
insert into #ttt values(N'张四',1,'A')
insert into #ttt values(N'张四',2,'A')
insert into #ttt values(N'王五',1,'B')

select * from(
select *, ROW_NUMBER() over(partition by XM order by BH desc ) rw from #ttt
where GH='A')t
where t.rw=1

结果
张四 2 A 1
李三 3 A 1
mayuanf 2012-02-21
  • 打赏
  • 举报
回复
为什么要用游标啊


create table #ttt(XM nvarchar(50), BH int , GH varchar(50))
insert into #ttt values(N'李三',1,'A')
insert into #ttt values(N'李三',2,'A')
insert into #ttt values(N'李三',3,'A')
insert into #ttt values(N'张四',1,'A')
insert into #ttt values(N'张四',2,'A')
insert into #ttt values(N'王五',1,'B')

select * from(
select *, ROW_NUMBER() over(partition by XM order by GH desc ) rw from #ttt
where GH='A')t
where t.rw=1

34,587

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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