我有一张桌子,是:
t:([alpha:`a`b`c`d`e`f];beta:10 20 30 40 50 60)
我还有两个变量:
chgkey:`b`c
chgvalue:2000 -1000
我想做类似的事情:
t:update beta:2000 from t where alpha=`b;
t:update beta:-1000 from t where alpha=`c;
我的问题是如何组合这两行代码。因为我正在处理一个远远大于这个简单示例的表,并且需要很多行代码才能完成所有更新,这太长了。
像
这样的好事t[chgkey]`beta:chgvalue;
答案 0 :(得分:3)
这就像t [chgkey]`beta:chgvalue
一样
工作解决方案稍微复杂一点:
t[([]alpha:chgkey);`beta]:chgvalue
答案 1 :(得分:2)
我会尝试使用下一个查询。但请注意,如果您的dict
非常庞大,可能会很慢
dict: `b`c ! 1000 2000;
t: update beta: ?[alpha in key dict; dict alpha;beta] from t;
如果表t
是全局的,可以使用功能更新进行更新:
{![`t;enlist (=;`alpha;enlist x);0b; enlist[`beta]!enlist y];}'[`b`c; 1000 2000]