首页 > 解决方案 > 如何在更新语句中使用每行的值设置函数参数?

问题描述

我有一张桌子和一个功能:

table:([] id:til 5; name:("one";"two";"three";"four";"five"))
fu:{[x] x,"_",x}

我想在每一行的更新语句中应用该函数,并将结果设置为新列“xyz”。我怎样才能做到这一点?这在这里不起作用,因为它似乎将参数评估为列表:

xyz:update x:fu[name] from table

标签: kdb

解决方案


您需要使用 each-both 运算符来确保函数分别在每一行上运行:

q)update xyz:fu'[name] from table
id xyz
----------------
0  "one_one"
1  "two_two"
2  "three_three"
3  "four_four"
4  "five_five"

推荐阅读