0

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

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

4

1 回答 1

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 from t 的长度错误?

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

select col1,col2 from tbl

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

要使其运行,请使用:

q) select ((),v) from t

但这不会征用v. 它只是将 null 附加到v列。

于 2015-02-24T15:13:04.127 回答