sql >> Databasteknik >  >> RDS >> Sqlserver

SQL för att analysera en nyckel-värdesträng

Om du kan få in dina data i formatet en nyckel/värdepar per rad, då är mycket av arbetet gjort. Låt mig kalla det resultatet t . Något sådant här kan hjälpa dig resten av vägen:

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

Detta förutsätter att id tilldelas sekventiellt, som visas i ditt exempel.



  1. SQL-sats för att få datumet om 2 dagar från nu

  2. Nya funktioner i SQL Server 2017 (databasmotor)

  3. Mysql-optimering baserad på förklara

  4. Hur man sammanfogar strängar i SQL Server med CONCAT()