Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

SQL zum Analysieren einer Schlüsselwertzeichenfolge

Wenn Sie Ihre Daten in das Format mit einem Schlüssel/Wert-Paar pro Zeile bringen können, ist ein Großteil der Arbeit erledigt. Lassen Sie mich dieses Ergebnis t nennen . So etwas wie das könnte Ihnen den Rest des Weges bringen:

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

Dies setzt voraus, dass die id wird sequentiell zugewiesen, wie in Ihrem Beispiel gezeigt.