我有一个像这样的逗号分隔字符串:
key1=value1,key2=value2,key3=value3,key1=value1.1,key2=value2.1,key3=value3.1
我想将它解析成一个如下所示的表:
Key1 Key2 Key3
==============================
value1 value2 value3
value1.1 value2.1 value3.1
我可以将字符串分成行:
ID Data
================
1 key1=value1
2 key2=value2
3 key3=value3
...
但我被困在那里,似乎无法找到完成其余工作的方法。任何帮助表示赞赏。
如果您能够将数据转换为每行一个键/值对的格式,那么大部分工作就完成了。让我称这个结果为t
。像这样的事情可能会帮助你完成剩下的事情:
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
这假设id
是按顺序分配的,如您的示例所示。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)