2015-02-24 25 views
0

我们有KDB查询来自不同列的数据,其中一列有字符数组类型('C'),即它包含文本。 我们要的是enlist它,当我们查询数据这样 select enlist column_with_character_arr from table如何将字符数组转换为kdb中的列表

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

回答

2

您在这里缺少each。用途:

select enlist each column_with_character_arr from table 

例如:

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

为什么选择(),在t,V是长度错误?

因为逗号(,)在选择查询分离,我们希望在输出不同的列,即

select col1,col2 from tbl 

所以在查询:select(),v from t:第一列(逗号之前)没有的值,第二列是v和因此两列的数量都不相同。这就是为什么它会产生`length错误。

,使其运行,使用方法:

q) select ((),v) from t 

但是,这将无法登记的v每个项目。它仅在v列附加空值。

相关问题