如何用SQL查询同一字段不同值的第一条数据
如果分开来写是下面3条语句,如何合并成一条语句,同时能获得3个类型的第一条记录selecttop1*fromtablewheretype='1'andtime>'2018...
如果分开来写是下面3条语句,如何合并成一条语句,同时能获得3个类型的第一条记录
select top 1 * from table where type = '1' and time > '2018-01-01'
select top 1 * from table where type = '2' and time > '2018-01-01'
select top 1 * from table where type = '3' and time > '2018-01-01'
可能没把问题描述清楚,type字段可能会有上千的类别,如果每条写出来加上去那是不现实的,对查询效率没任何提升 展开
select top 1 * from table where type = '1' and time > '2018-01-01'
select top 1 * from table where type = '2' and time > '2018-01-01'
select top 1 * from table where type = '3' and time > '2018-01-01'
可能没把问题描述清楚,type字段可能会有上千的类别,如果每条写出来加上去那是不现实的,对查询效率没任何提升 展开
3个回答
展开全部
select top 1 * from table where type = '1' and time > '2018-01-01'
union all
select top 1 * from table where type = '2' and time > '2018-01-01'
union all
select top 1 * from table where type = '3' and time > '2018-01-01'
都用union all连接
追答
select t.* from
(select *,ROW_NUMBER() over (partition by type order by type) rn from table where type = '1' and time > '2018-01-01') t
where t.rn=1
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
select * from table where a_id in (select t.idfrom (select min(id) as a_id from table where type in (5,2,3) group by type) t)
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
SELECT * FROM t1 tt WHERE exists ( select gonghao,riqi from ( select gonghao,max(riqi) as riqi from t1 group by gonghao ) t where tt.gonghao=t.gonghao and tt.riqi=t.riqi )
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询