如何用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字段可能会有上千的类别,如果每条写出来加上去那是不现实的,对查询效率没任何提升
展开
 我来答
badkano
2018-10-25 · 知道合伙人体育行家
badkano
知道合伙人体育行家
采纳数:144776 获赞数:885366
团长

向TA提问 私信TA
展开全部
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
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
雨中花雨落
2018-10-25 · 超过102用户采纳过TA的回答
知道小有建树答主
回答量:352
采纳率:70%
帮助的人:130万
展开全部
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)
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
曾寅彪
2018-10-26 · TA获得超过1853个赞
知道大有可为答主
回答量:2514
采纳率:86%
帮助的人:654万
展开全部
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 )
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式