kdb +:用0替换空整数

Jea*_*aul 4 kdb

请考虑下表:

myTable:

a     b
-------
1     
2
3     10
4     50
5     30
Run Code Online (Sandbox Code Playgroud)

如何b用零替换空单元格?结果将是:

a     b
-------
1     0
2     0
3     10
4     50
5     30
Run Code Online (Sandbox Code Playgroud)

现在我正在做:

myTable: update b:{$[x~0Ni;0;x]}'b from myTable
Run Code Online (Sandbox Code Playgroud)

但我想知道是否有更好/更容易的解决方案.

MdS*_*lih 6

使用填充运算符(^)

示例表:

q) tbl:flip`a`b!(2;0N)#10?0N 0N 0N,til 3
    a b
    ---
    0 2
    1 1
    1 1
      1
    1
Run Code Online (Sandbox Code Playgroud)

使用0填充所有列中的空值:

q)0^tbl
    a b
    ---
    0 2
    1 1
    1 1
    0 1
    1 0
Run Code Online (Sandbox Code Playgroud)

仅在带有0的选择列中填充空值:

q)update 0^b from tbl
    a b
    ---
    0 2
    1 1
    1 1
      1
    1 0
Run Code Online (Sandbox Code Playgroud)