如何在KDB表列中填充空值?

时间:2018-10-16 18:52:11

标签: kdb

q)t:flip `name`iq!(`Dent``Prefect;98 32 34)

q)t
name    iq
----------
Dent    98
        32
Prefect 34

我如何形成条件查询以对列name起作用

q)select case when name is null then `Empty else name ,iq from t

预期输出:

name    iq
----------
name    iq
Dent    98
Empty   32
Prefect 34

3 个答案:

答案 0 :(得分:6)

您可以使用fill ^替换空值

q)update `Empty^name from t
name    iq
----------
Dent    98
Empty   32
Prefect 34

答案 1 :(得分:3)

也可以将https://code.kx.com/q/ref/lists/#vector-conditional用作在表达式上添加列的方法:

q)select ?[null name;`Empty;name],iq from t
name    iq
----------
Dent    98
Empty   32
Prefect 34

答案 2 :(得分:1)

除了上述答案外,您还可以使用where语句中的update完成此操作:

q)update name:`Empty from t where null name
name    iq
----------
Dent    98
Empty   32
Prefect 34