Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/33.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
KDB和x2B;合并多个更新语句_Kdb - Fatal编程技术网

KDB和x2B;合并多个更新语句

KDB和x2B;合并多个更新语句,kdb,Kdb,如果f1&m1有null,我想分别将f1&m1列更新为f2&m2;实际上,我想将这两个查询合并到一个update语句中: q)d:([] f1:`a`b` ;f2:```c; m1:`x``z;m2:``y`z) f1 f2 m1 m2 ----------- a x b y c z z 可以使用三元向量条件求值 新的查询将是: ?[vb;exprtrue;exprfalse] 您可能想考虑的另一种选择是, ^ < /代码>,它允许您用一个列表中

如果
f1
&
m1
null
,我想分别将
f1
&
m1
列更新为
f2
&
m2
;实际上,我想将这两个查询合并到一个update语句中:

q)d:([] f1:`a`b` ;f2:```c; m1:`x``z;m2:``y`z)

f1 f2 m1 m2
-----------
a     x    
b        y 
   c  z  z 
可以使用三元向量条件求值

新的查询将是:

?[vb;exprtrue;exprfalse]

您可能想考虑的另一种选择是,<代码> ^ < /代码>,它允许您用一个列表中的空项填充另一个列表中的项目(在这种情况下,列表是表中的列),例如


填充可用于更新空值: 如果要就地更新表d,则可以使用:
`d

如果要在不更新原始表的情况下显示更新的输出,则:
从d更新f2^f1、m2^m1

![`d;();0b;`f1`m1!((^;`f2;`f1);(^;`m2;`m1))]

好的,乔恩。小修正-“从d更新f2^f1,m2^m1”
q)update f1:?[null f1;f2;f1] , m1:?[null m1;m2;m1] from d
f1 f2 m1 m2
-----------
a     x    
b     y  y 
c  c  z  z 
q)d:([] f1:`a`b` ;f2:```c; m1:`x``z;m2:``y`z)
q)update f2^f1,m2^m1 from d
f1 f2 m1 m2
-----------
a     x
b     y  y
c  c  z  z
![`d;();0b;`f1`m1!((^;`f2;`f1);(^;`m2;`m1))]
![d;();0b;`f1`m1!((^;`f2;`f1);(^;`m2;`m1))]