我有一张桌子:
tab:([]a:(`$"1-01";`2;`$"3-01";`4;`$"5-01";`6);source:`a`a`b`b`a`b)
a source
-----------
1-01 a
2 a
3-01 b
4 b
5-01 a
6 b
我想将1-01和5-01更改回1而不是3-01,具体取决于来源。我写了下面的代码:
`$({ssr[string x;"-01";""]}each tab[`a])
通过这样做,我可以把它放回一个列,但这不是我想要的。我也做了以下事情:
`$({ssr[string x;"-01";""]}each tab[`a] where source=`a)
但在这之后我不知道如何把它放回桌面。然后我想到了使用执行控制:但不知道我应该如何编码它。我已经完成了一半,并没有真正起作用:
?[tab[`source] = `a;`$({ssr[string tab[`a];"-01";""]});tab[`a]]
答案 0 :(得分:2)
"更新"似乎是你需要的:
q)update `$ssr[;"-01";""] each string a from tab where source=`a
a source
-----------
1 a
2 a
3-01 b
4 b
5 a
6 b