Nếu bạn có thể đưa dữ liệu của mình vào định dạng một cặp khóa / giá trị trên mỗi hàng, thì phần lớn công việc đã hoàn thành. Để tôi gọi kết quả đó là t
. Một cái gì đó như thế này có thể giúp bạn hoàn thành chặng đường còn lại:
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
Điều này giả định rằng id
được chỉ định tuần tự, như được hiển thị trong ví dụ của bạn.