1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| WITH
T0 AS
(SELECT Clef, 1 AS Ligne,
CASE WHEN POSITION('-', Profil) > 0 THEN LEFT(Profil, POSITION('-', Profil) - 1) ELSE Profil END AS Profil1,
CASE WHEN POSITION('-', Profil) > 0 THEN RIGHT(Profil, CHARACTER_LENGTH(Profil) - POSITION('-', Profil)) ELSE '' END AS ProfilN
FROM MaTable
UNION ALL
SELECT Clef, Ligne + 1,
CASE WHEN POSITION('-', ProfilN) > 0 THEN LEFT(ProfilN, POSITION('-', ProfilN) - 1) ELSE ProfilN END AS Profil1,
CASE WHEN POSITION('-', ProfilN) > 0 THEN RIGHT(ProfilN, CHARACTER_LENGTH(ProfilN) - POSITION('-', ProfilN)) ELSE '' END AS ProfilN
FROM T0
WHERE ProfilN <> ''
)
SELECT Clef, Profil1, Ligne
FROM T0
ORDER BY Clef, Ligne |
Partager