我们有KDB查询,它从不同的列中获取数据,其中一列具有字符数组类型('C'),即它包含文本。
当我们查询这样的数据时,我们想要的是enlist
select enlist column_with_character_arr from table
即。在列表中有(“value1”)所以我们稍后可以在这个列表中添加一个元素,比如说,(“value1”,“value2”)。怎么做?因为目前我们尝试enlist
或添加,()
时,它会因长度错误而失败。
答案 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。