kdb/q 如何在函数中使用条件语句(if/else)

问题描述 投票:0回答:1

我试图了解如何根据当前状态更改表中的值。 目前,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吗?

if-statement conditional-statements kdb
1个回答
0
投票

您可以使用向量条件运算符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/ 了解一些背景知识。

© www.soinside.com 2019 - 2024. All rights reserved.