如何将字符数组转换为kdb中的列表
How to convert character array into list in kdb
我们有 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 来自 t 的长度错误?
因为 select 查询中的逗号 (,
) 分隔了我们想要输出的不同列,即
select col1,col2 from tbl
所以在查询中:select (),v from t
:第一列(逗号前)没有值,第二列是 v
,因此两列的计数不同。这就是它给出 `length
错误的原因。
要使其成为 运行,请使用:
q) select ((),v) from t
但这不会征集 v
的每个项目。它只是将 null 附加到 v
列。
我们有 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 来自 t 的长度错误?
因为 select 查询中的逗号 (,
) 分隔了我们想要输出的不同列,即
select col1,col2 from tbl
所以在查询中:select (),v from t
:第一列(逗号前)没有值,第二列是 v
,因此两列的计数不同。这就是它给出 `length
错误的原因。
要使其成为 运行,请使用:
q) select ((),v) from t
但这不会征集 v
的每个项目。它只是将 null 附加到 v
列。