Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

SQL pour analyser une chaîne clé-valeur

Si vous êtes en mesure d'obtenir vos données dans le format d'une paire clé/valeur par ligne, alors une grande partie du travail est faite. Permettez-moi d'appeler ce résultat t . Quelque chose comme ça pourrait vous permettre d'aller jusqu'au bout :

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

Cela suppose que le id est attribué de manière séquentielle, comme indiqué dans votre exemple.