我有一张表:
q)tbl[`XXX]
1977 1987 1997
我想更新年份列表中的第n个元素,因此上面的内容变为
q)tbl[`XXX]
1997 1987 2007
需要它到位吗? 一直在研究文档,但很难搞清楚。
答案 0 :(得分:3)
您可以将该表视为翻转字典。 要进行字典更新,首先要在键上进行索引:
q)tbl:([]XXX:1977 1987 1997)
q)dict:flip tbl
q)dict[`XXX;n]:2007
q)dict
XXX| 1977 1987 2007
因此,要对表执行就地更新,请使用以下语法:
q)tbl:([]XXX:1977 1987 1997)
q)tbl[`XXX]
1977 1987 1997
q)tbl[n;`XXX]:2007
q)tbl[`XXX]
1977 1987 2007
答案 1 :(得分:0)
qsql版的Jamies回答:
q)update XXX:2007 from `tbl where i=n
这也允许您使用基于表
中其他列的where子句