怎么取出每个ID的两行数据?

lzhzxl 2005-04-21 12:07:20
例如:
表:UserID,Flag
这个表中有很多行数据,USERID这个字段是可以重复的,可能同一用户会有很多条,但我希望只取出两条,用一条SQL语句怎么写?要同时取出所有USERID的两条数据
谢谢
...全文
160 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
Lwg0901 2005-04-22
  • 打赏
  • 举报
回复
返回时间最大的俩个也可以吧,你可以试试

取不包含最大时间的相同UserId的最大(其实是第二大)时间union最大时间
Lwg0901 2005-04-22
  • 打赏
  • 举报
回复
to ancyzhou() :
id为自增列,除非你强行使id列有相同值,否则不会有“max(id)的记录同时有三条的话”

谢谢
Well 2005-04-22
  • 打赏
  • 举报
回复

select max(UserId) as UserId from tablename group by UserID
union all
select min(UserID) as UserId from tablename group by UserID
lzhzxl 2005-04-21
  • 打赏
  • 举报
回复
只有一行就返回一行可以
Lwg0901 2005-04-21
  • 打赏
  • 举报
回复
如果某userid只有一行,上边的语句对该userid也只能返回一行,不知道这样能不能满足楼主的要求
Lwg0901 2005-04-21
  • 打赏
  • 举报
回复
如果某userid只有一行,上边的语句对该userid也只能返回一样,不知道这样能不能满足楼主的要求
Lwg0901 2005-04-21
  • 打赏
  • 举报
回复
增加一个自增列id
select * from t where id in (select max(id) from t group by userid union select min(id) from t group by userid)
lzhzxl 2005-04-21
  • 打赏
  • 举报
回复
随便怎么取都可以,或者是加一个时间字段,取时间最大的两条也可以,FLAG什么类型没有关系吧?
Lwg0901 2005-04-21
  • 打赏
  • 举报
回复
学习。。。
xspf 2005-04-21
  • 打赏
  • 举报
回复
Flag是什么类型

取出两条什么样的记录?同一userid如果有两条以上的记录,怎么取舍?
ancyzhou 2005-04-21
  • 打赏
  • 举报
回复
不好意思,丢脸了一把,没看清楚
ancyzhou 2005-04-21
  • 打赏
  • 举报
回复
关于 Lwg0901(伤心人) 的语句是有问题的
增加一个自增列id
select * from t where id in (select max(id) from t group by userid union select min(id) from t group by userid)

如果max(userid) 的记录同时有三条的话,那这三条都会被选出来
paoluo 2005-04-21
  • 打赏
  • 举报
回复

如果相同的UserID没有Flag相同的话
Select * from 表 A
Where Exists(Select * from 表 Where UserID=A.UserID And Flag>A.Flag Having Count(*)<2 )
Order By UserID,Flag
churchatp1 2005-04-21
  • 打赏
  • 举报
回复
up一下
lzhzxl 2005-04-21
  • 打赏
  • 举报
回复
能不能返回时间最大的两个呢?
谢谢

34,576

社区成员

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

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