0
我有一个表,如:KDB/Q更新密钥表元素的列表元素
q)tbl[`XXX]
1977 1987 1997
,我想更新从多年的列表中第n个元素,因此上述变成
q)tbl[`XXX]
1997 1987 2007
而且需要它到位? 一直在寻找文档,但很难搞清楚。
我有一个表,如:KDB/Q更新密钥表元素的列表元素
q)tbl[`XXX]
1977 1987 1997
,我想更新从多年的列表中第n个元素,因此上述变成
q)tbl[`XXX]
1997 1987 2007
而且需要它到位? 一直在寻找文档,但很难搞清楚。
您可以将该表视为翻转的字典。 做一个字典更新,指数在关键的第一:
q)tbl:([]XXX:1977 1987 1997)
q)dict:flip tbl
q)dict[`XXX;n]:2007
q)dict
XXX| 1977 1987 2007
因此做一个就地更新桌子上使用的语法如下:Jamies答案
q)tbl:([]XXX:1977 1987 1997)
q)tbl[`XXX]
1977 1987 1997
q)tbl[n;`XXX]:2007
q)tbl[`XXX]
1977 1987 2007
QSQL版本:
q)update XXX:2007 from `tbl where i=n
这也将允许您使用其中根据表中的其他列第
这样做,谢谢。 –
我有一个后续问题:现在,更新被保存在内存中。但是,如果我想要在重新启动kdb后继续进行更改,那么要做什么?尽我所知,我们需要能够将更改保存到磁盘! –
有许多方法可以将表格保存下来。 – jomahony