带索引标记的行的postgresql副本
有没有办法让sql查询返回拆分的行。我甚至不知道该怎么问。 在下面有“索引标签”带索引标记的行的postgresql副本,postgresql,tags,row,Postgresql,Tags,Row,有没有办法让sql查询返回拆分的行。我甚至不知道该怎么问。 在下面有“索引标签” select event.name, tb_ev.start_time, tb_ev.end_time from block as tb_ev,event where location_id in ( 28522 ) and tb_ev.event_id=event.id; name | start_time | end_time ---------------+------------+
select event.name, tb_ev.start_time, tb_ev.end_time
from block as tb_ev,event
where location_id in ( 28522 )
and tb_ev.event_id=event.id;
name | start_time | end_time
---------------+------------+----------
Register #1 | 06:00:00 | 09:00:00
Register #2 | 11:00:00 | 12:00:00
Register #3 | 11:00:00 | 14:00:00
从3行到7行
name | start_time | end_time | index_tag
---------------+------------+--------------------
Register #1 | 06:00:00 | 09:00:00 | 06:00:00
Register #1 | 06:00:00 | 09:00:00 | 07:00:00
Register #1 | 06:00:00 | 09:00:00 | 08:00:00
Register #2 | 11:00:00 | 12:00:00 | 11:00:00
Register #3 | 11:00:00 | 14:00:00 | 11:00:00
Register #3 | 11:00:00 | 14:00:00 | 12:00:00
Register #3 | 11:00:00 | 14:00:00 | 13:00:00
试试这个:
SELECT *, start_time +
generate_series(0,extract(hour from (end_time - start_time))::int -1)
* interval '1 hour' as index_tag
FROM block
这有点难看,但它可以工作(generate_series
不适用于time
。仅int
或timestamp
)
这是你的电话号码
有关详细信息请尝试以下操作:
SELECT *, start_time +
generate_series(0,extract(hour from (end_time - start_time))::int -1)
* interval '1 hour' as index_tag
FROM block
这有点难看,但它可以工作(generate_series
不适用于time
。仅int
或timestamp
)
这是你的电话号码
详情