create new cols based on a delimiter from a particular column

Hai*_*ali 0 kdb

我有一个表,其中有多个列的选项卡。我对 C 类型的列文本感兴趣。现在我们想使用文本列并根据 delimeter 进行分割;并创建一个新列

所以这里的列名是rank,它的值是1等等...我们在kdb+中如何做到这一点?

我想出了下面的方法,但我不想使用它,因为它被硬编码到第 6 项等等......如果订单发生变化,或者如果国家/地区丢失,那么它会中断怎么办

res:update `$(raze(" *";"=")0:string country) from  update country:(`$";" vs' text)[;6] from res;
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

ter*_*nch 5

请在提问时提供示例代码来创建您的数据,图片对我们没有帮助。

q)t:([]text:("aa=1;bb=XYZ;cc=$1.23";"bb=TUV;dd=3.4%";"aa=foo;cc=10"))
q)t,'(uj/)exec{enlist(!/)"S=;"0:x}'[text]from t
text                   aa    bb    cc      dd
-------------------------------------------------
"aa=1;bb=XYZ;cc=$1.23" ,"1"  "XYZ" "$1.23" ""
"bb=TUV;dd=3.4%"       ""    "TUV" ""      "3.4%"
"aa=foo;cc=10"         "foo" ""    "10"    ""
Run Code Online (Sandbox Code Playgroud)

这是文档的相关部分:https://code.kx.com/q/ref/file-text/#key-value-pairs