2015-05-03 116 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

完美!感謝您的時間 –