最近在搞BOSS,遇到了一个难题,具体是这样的:
1.表的名字 A,用于存放用户资料(移动手机用户资料),里面记录是千万级的
2.ID字段大约有100种,标识用户手机号码的品牌,如全球通至尊卡,动感地带音乐套餐
3.servnumber字段,用户的手机号码
4.现在的问题是:有30个品牌(ID已知),需要从表A中检索出对应的servnumber,要求每个品牌一条记录(比如神州行家园卡有500万条.随便检索一条即可),30个品牌,显示30行结果,只写一条SQL语句,不用存储过程.
(我用30条select语句,然后union,实在笨的可以,高手指点下)
1.表的名字 A,用于存放用户资料(移动手机用户资料),里面记录是千万级的
2.ID字段大约有100种,标识用户手机号码的品牌,如全球通至尊卡,动感地带音乐套餐
3.servnumber字段,用户的手机号码
4.现在的问题是:有30个品牌(ID已知),需要从表A中检索出对应的servnumber,要求每个品牌一条记录(比如神州行家园卡有500万条.随便检索一条即可),30个品牌,显示30行结果,只写一条SQL语句,不用存储过程.
(我用30条select语句,然后union,实在笨的可以,高手指点下)
from A a
group by a.ID;
==============第二种=============== select distinct a.ID,first_value(a.servnumber) over(partition by a.ID)
from A a;
怎样在一条语句中实现啊?
where id in ( ... )
按照您的写法,会有很多重复的记录!
呵呵!
select servnumber from a where rowid in
(select min(rowid) from a group by id having id in ('a','b'));