我有下表,其中我需要输出该表中的所有数字,如果HIGH为空,则按原样插入该数字;如果HIGH不为空,那么它是一个范围,并且将插入LOW和HIGH之间的所有值。
LOW HIGH
1031
1100
3000 3999
1400 1499
我认为您正在寻找一个递归cte,它在SQLite起始版本3.8.3中可用。
with recursive cte as (
select low, high from mytable
union all
select low + 1, high from cte where low < high
)
select low val from cte
这给出了一个结果集,该结果集具有一个名为val
的唯一列,该列包含每个范围中的所有值;对于high
是null
的记录,生成具有值low
的单行。