sql语句问题,求助

来源:百度知道 编辑:UC知道 时间:2024/06/20 02:10:18
select top 1 * from user where userid in(select id from book) (这个id就是上面查出的 但是这样只能查出一条记录 我想查出每个id的第一条记录该怎么写 或者写个存储过程该怎么写 请见教 谢谢)
sql2005数据库

select usersid from user where userid in(select id from book)group by usersid

Declare @count int,@i int

select @i = 1
select @count=count(distinct userid) from user where userid in (select id from book)
select * into #temp_user from user where 1=0

if @count > 0
begin
while @i <= @count
begin
insert into #temp_user
select top 1 * from user where userid in (select id from book) and userid not in (select userid from #temp_user )
select @i = @i+1
end
select * from #temp_user
end
Drop table #temp_user

大哥你得说一下你是什么数据库啊?
给你提供一个存储过程思想吧!
第一:
select * from user where userid in(select id from book) order by userid
把上面的定义为游标
第二:
定义一个变量叫aa,把它定义为userid的类型,为空值吧。
第三:
循环这个游标
用从游标里取出userid这个值跟aa比较,如果不相等就输出并且把userid的值赋给aa。相等的话就什么事也不做

select * from user where userid in(select id from book)