我有一个表。它包含2列(id,value)。Value列保存日期和状态。(a:活动,s:挂起,d:停用)
id | value
1 | 220325a|220608s
2 | 220325a|220325d|220822a|220822d
3 | 220325a
4 | 220325a|220329d
我想做的是像这样解析值列
My new table :
id | start_date | end_date
1 | 25.03.2022 | 08.06.2022
2 | 25.03.2022 | 25.03.2022
2 | 22.08.2022 | 22.08.2022
3 | 25.03.2022
4 | 25.03.2022 | 29.03.2022
我想我必须使用嵌套循环,但我如何找到一个接一个的日期?
1条答案
按热度按时间2lpgd9681#
可以使用递归查询和简单的字符串函数:
其中,对于示例数据:
输出:
| 识别号|开始日期|结束日期|开始状态|结束状态|
| - ------|- ------|- ------|- ------|- ------|
| 1个|2022年3月25日00时00分|2022年6月8日00时00分|项目a|S的|
| 第二章|2022年3月25日00时00分|2022年3月25日00时00分|项目a|日|
| 第二章|2022年8月22日00时00分|2022年8月22日00时00分|项目a|日|
| 三个|2022年3月25日00时00分|* 无效 |项目a| 无效 *|
| 四个|2022年3月25日00时00分|2022年3月29日00时00分|项目a|日|
fiddle