Pokud jste schopni dostat svá data do jednoho páru klíč/hodnota na řádek, je velká část práce hotová. Dovolte mi nazvat tento výsledek t
. Něco takového by vás mohlo dostat na zbytek cesty:
select max(case when LEFT(data, 4) = 'key1' then SUBSTRING(data, 6, len(data)) end) as key1,
MAX(case when LEFT(data, 4) = 'key2' then SUBSTRING(data, 6, len(data)) end) as key2,
MAX(case when LEFT(data, 4) = 'key2' then SUBSTRING(data, 6, len(data)) end) as key3
from t
group by (id - 1)/3
To předpokládá, že id
se přiřazuje postupně, jak ukazuje váš příklad.