我们有从不同列获取数据的 KDB 查询,其中一列具有字符数组类型 ('C'),即它包含文本。我们想要的是enlist
当我们查询这样的数据时
select 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 from t 的长度错误?
因为 select 查询中的 comma( ,
) 分隔了我们在输出中想要的不同列,即
select col1,col2 from tbl
所以在查询 ::select (),v from t
第一列(逗号之前)没有值,第二列是v
,因此两列的计数不同。这就是它给出`length
错误的原因。
要使其运行,请使用:
q) select ((),v) from t
但这不会征用v
. 它只是将 null 附加到v
列。