有没有办法填写select
语句结果中省略的行?
我有这样的数据:
person,day
1,20
1,24
...这是由像这样的简单查询返回的:
select *
from example_table
where day>=20
我想要的是为缺少的日子添加行,所以结果如下所示:
person,day
1,20
1,21
1,22
1,23
1,24
有没有办法通过SQL做到这一点?
答案 0 :(得分:0)
一个解决方案是一个帮助表,其中包含一个整数列,其值从1到最大值(31?)。
select person, day
from yourtable
UNION ALL
select intcol,
from helptable h
where not exists (select day from yourtable y where y.day = h.helptable);