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

How to fill nulls in a KDB table column?

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

您可以使用填充 ^ 来替换空值

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

也可以将 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

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

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