http://qs321.pair.com?node_id=1130839


in reply to Re^3: Dates of Monk promotion (covered)
in thread Dates of Monk promotion

:)

And here it is in SQL, should you want to use some FUNctions on the data.

Should work in most RDBMS's, as long as they support recursive CTEs. Just replace the initial string with your own. And remove or replace "FROM Dual" with whatever works in your RDBMS.

WITH Levels(String) AS ( SELECT '1-2 2011-11-15 07:42:33;2-3 2011-11-27 13:51:37;3-4 2011-12-0 +6 07:12:37;4-5 2011-12-09 15:28:52;5-6 2011-12-30 10:53:44;6-7 2012-0 +2-02 07:06:41;7-8 2012-03-20 06:36:12;8-9 2012-05-25 11:46:56;9-10 20 +12-08-14 06:04:53;10-11 2013-09-04 07:38:12;11-12 2014-03-26 06:30:49 +;12-13 2014-06-18 10:51:18;13-14 2014-11-13 14:14:53;14-15 2015-06-10 + 09:12:30' FROM Dual ), Split(Lvl, When, String) AS ( SELECT SUBSTR(String, INSTR(String, '-') + 1, 2), REPLACE(SUBSTR(String, INSTR(String, '-') + 03, 20), ';'), REPLACE(SUBSTR(String, INSTR(String, '-') + 23), ';', ' ') FROM Levels UNION ALL SELECT CAST(Split.Lvl + 1 AS VARCHAR2(2)), SUBSTR(Split.String, INSTR(Split.String, '-') + 03, 20), SUBSTR(Split.String, INSTR(Split.String, '-') + 23) FROM Split, Levels WHERE Split.String IS NOT NULL ) SELECT Lvl, When FROM Split;