sql查询问题

pilishou 2009-03-03 03:41:32
有表table, id name address phone flag time

查出flag=1,flag=2,flag=3,flag=4 的记录
要求各5条,用一个sql完成

也就是结果中有5个flag=1,5个flag=2,5个flag=3,5个flag=4,按时间倒序排序
...全文
86 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
pilishou 2009-03-03
  • 打赏
  • 举报
回复
union all 与order by 同时用必须列出查询的所有字段,那样不是很繁重的了
select * from table order by id name ........
moonshineidolon 2009-03-03
  • 打赏
  • 举报
回复
select * from

(

select top 5 * from table where flag =1 order by time desc
union all
select top 5 * from table where flag =2 order by time desc
union all
select top 5 * from table where flag =3 order by time desc
union all
select top 5 * from table where flag =4 order by time desc
union all
select top 5 * from table where flag =5 order by time desc
) as ABC
moonshineidolon 2009-03-03
  • 打赏
  • 举报
回复
ABC 是表的别名
pilishou 2009-03-03
  • 打赏
  • 举报
回复
ABC是啥意思,未定义
moonshineidolon 2009-03-03
  • 打赏
  • 举报
回复
select * from

(

select top 5 * from table where flag =1 order by time desc
union all
select top 5 * from table where flag =2 order by time desc
union all
select top 5 * from table where flag =3 order by time desc
union all
select top 5 * from table where flag =4 order by time desc
union all
select top 5 * from table where flag =5 order by time desc
) ABC

moonshineidolon 2009-03-03
  • 打赏
  • 举报
回复
select * from

(

select top 5 * from table where flag =1 order by ABC.time desc
union all
select top 5 * from table where flag =2 order by ABC.time desc
union all
select top 5 * from table where flag =3 order by ABC.time desc
union all
select top 5 * from table where flag =4 order by ABC.time desc
union all
select top 5 * from table where flag =5 order by ABC.time desc
) ABC

27,579

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 应用实例
社区管理员
  • 应用实例社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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