Estou tentando ver como posso alterar o valor de uma tabela com base em seu estado atual. Atualmente, a coluna isSelected é 0 ou 1, e quero alterar seu valor para outro, mas não sei como fazer isso em kdb/q.
Aqui está o que estou tentando fazer em psuedocode:
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;
Existe alguma maneira de fazer if/else if/else em q?
você pode usar o ? operador condicional de vetor: https://code.kx.com/q/ref/vector-conditional/
neste caso em que você está apenas invertendo 0 e 1, você também pode usar o operador not:
Você pode usar o operador condicional de vetor https://code.kx.com/q/ref/vector-conditional/ que pode ser usado em consultas qSQL, então ficaria assim:
Updade a:?[a=1;0;1] from table
onde a é a coluna na qual você está invertendo os valores, se desejar pré-formar a atualização, basta adicionar um crase inicial à tabela como `table. Você também pode verificar https://code.kx.com/q/ref/cond/ para obter informações básicas.