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

时间:2015-02-24 14:12:53

标签: kdb q-lang

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

即。在列表中有(“value1”)所以我们稍后可以在这个列表中添加一个元素,比如说,(“value1”,“value2”)。怎么做?因为目前我们尝试enlist或添加,()时,它会因长度错误而失败。

1 个答案:

答案 0 :(得分:2)

您在这里缺少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的每个项目。它只是在v列附加null。