我试图了解如何根据当前状态更改表中的值。 目前,isSelected 列不是 0 就是 1,我想将其值更改为另一个,但我不知道如何在 kdb/q 中执行此操作。
这是我尝试在伪代码中执行的操作:
fChangeBit[table]:
if table[rowToFlip][isSelected] == 0:
set table[rowToFlip][isSelected] = 1;
else if table[rowToFlip][isSelected] == 1:
set table[rowToFlip][isSelected] = 0;
return table;
有什么方法可以在q中执行if/else if/else吗?
您可以使用向量条件运算符https://code.kx.com/q/ref/vector-conditional/这些可以在qSQL查询中使用,所以它看起来像:
Update rowToFlip:?[rowToFlip=1;0;1] from table
如果您想就地执行更新,只需在表中添加一个前导反引号作为`table. 您可能还想查看 https://code.kx.com/q/ref/cond/ 了解一些背景知识。