Jeśli jesteś w stanie umieścić dane w jednej parze klucz/wartość na format wiersza, większość pracy jest już wykonana. Pozwolę sobie nazwać ten wynik t
. Coś takiego może pomóc ci przejść resztę drogi:
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
Zakłada się, że id
jest przypisywana sekwencyjnie, jak pokazano w przykładzie.