在我的表格中,我有"邮箱"一栏.我想 Select 1000个数据,其中最多100封邮件是"gmail".有没有办法编写一个查询来获取数据?
我要做的是,创建两个查询,然后合并它们.
SELECT email from my_table where email not like '%@gmail.%' limit 900;
SELECT email from my_table where email like '%@gmail.%' limit 100;
在我的表格中,我有"邮箱"一栏.我想 Select 1000个数据,其中最多100封邮件是"gmail".有没有办法编写一个查询来获取数据?
我要做的是,创建两个查询,然后合并它们.
SELECT email from my_table where email not like '%@gmail.%' limit 900;
SELECT email from my_table where email like '%@gmail.%' limit 100;
一个简单的union all
就够了.然而,为了确保你得到的是union all
0行(如果@gmail有超过union all
0行但少于union all
行),你可以这样做:
with u as
(SELECT email from my_table where email like '%@gmail.%' limit 100)
select * from u
union all
(SELECT email from my_table
where email not like '%@gmail.%'
limit 1000 - (select count(*) from u));