You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在kdb+中合并不同类型列并转换为带点分隔符的sym类型

解决kdb+表中合并列并生成带点符号的问题

要将name和id列以英文点.分隔合并成aa.1格式的符号列,你需要修正字符串拼接的处理逻辑,核心是让拼接操作逐个作用于每一行的字段对。

问题原因

你之前尝试的"." sv (string name,'string id)会触发类型错误,是因为sv(字符串拼接函数)仅能处理单个字符串列表,而(string name,'string id)生成的是由多个字符串子列表组成的集合(比如(("aa";"1");("bb";"2");("cc";"3"))),无法直接被sv批量处理。

正确代码

使用/: (each-left操作符)让sv逐个处理每一行的字符串对,再转换为符号:

tab:([]name:`aa`bb`cc;id:1 2 3)
tab:update info:`$"." sv/: (string name,'string id) from tab

执行后,tab表的info列结果为:

`aa.1`bb.2`cc.3

简化写法

也可以直接对每一行的name和id进行字符串拼接后转符号,逻辑更直观:

tab:update info:`$string name, "." , string each id from tab

内容的提问来源于stack exchange,提问作者CleanSock

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.12 06:12:38