如何将字符数组转换为kdb中的列表

How to convert character array into list in kdb

我们有 KDB 查询,它从不同的列获取数据,其中一列具有字符数组类型 ('C'),即它包含文本。 当我们这样查询数据时,我们想要的是 enlistselect enlist column_with_character_arr from table

即将 ("value1") 放在列表中,以便稍后我们可以向该列表中添加一个元素,例如 ("value1", "value2")。怎么做?因为目前当我们尝试 enlist 或添加 ,() 时,它会因长度错误而失败。

您在这里缺少 each。使用:

select enlist each column_with_character_arr from table

例如:

q) t:([]v:("abc";"xyz"))
q) select enlist each v from t

为什么 select (),v 来自 t 的长度错误?

因为 select 查询中的逗号 (,) 分隔了我们想要输出的不同列,即

select col1,col2 from tbl

所以在查询中:select (),v from t:第一列(逗号前)没有值,第二列是 v,因此两列的计数不同。这就是它给出 `length 错误的原因。

要使其成为 运行,请使用:

q) select ((),v) from t

但这不会征集 v 的每个项目。它只是将 null 附加到 v 列。