kdb更新多个where子句对应的多个列

时间:2016-07-26 18:43:34

标签: kdb

我有一张桌子,是:

t:([]a:1 3 2 1 2 3 3 2 1;b:10 20 30 40 50 60 70 80 90;c:100 200 300 400 500 600 700 800 900)

我希望所有c都为0,其中a等于2,并且所有c都为0,其中a等于1。

目前我有这两个代码:

t:update b:0 from t where a=1

t:update c:0 from t where a=2

我的问题是如何将这两行代码合二为一。因为我正在处理一个远远大于这个简单示例的表,并且需要很多行代码才能完成所有更新,这太长了。

1 个答案:

答案 0 :(得分:2)

您可以使用vector conditional

update b:?[a=1;0;b], c:?[a=2;0;c] from t