2015-05-03 76 views
2

考虑下表:KDB +:替换空整数,0

myTable: 

a  b 
------- 
1  
2 
3  10 
4  50 
5  30 

如何用零替换的b空白单元格?因此,结果将是:

a  b 
------- 
1  0 
2  0 
3  10 
4  50 
5  30 

现在我做:

myTable: update b:{$[x~0Ni;0;x]}'b from myTable 

但我想知道是否有这样做的更好/更容易的解决方案。

回答

3

使用fill operator^

示例表:

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

填写中的所有列的空值与0:

q)0^tbl 
    a b 
    --- 
    0 2 
    1 1 
    1 1 
    0 1 
    1 0 

仅选择性列填充空值与0:

q)update 0^b from tbl 
    a b 
    --- 
    0 2 
    1 1 
    1 1 
     1 
    1 0 
+0

完美!感谢您的时间 –