Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

SQL para analisar uma string de valor-chave


Se você conseguir colocar seus dados em um par de chave/valor por formato de linha, grande parte do trabalho estará concluído. Deixe-me chamar esse resultado de t . Algo assim pode levá-lo ao resto do caminho:
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

Isso pressupõe que o id é atribuído sequencialmente, conforme mostrado em seu exemplo.