如何动态地将值从null更新为0?

问题描述 投票:0回答:1

输入:

姓名 数学 科学
德纳 95
卡兰 90 97
杰克

我们需要在 KDB qsql 中动态地将值从 null 更新为 0。 我想在 KDB 中使用功能性 qsql 查询。

预期输出:

姓名 数学 科学
德纳 95 0
卡兰 90 97
杰克 0 0

此查询适用于上面的示例:

show t: flip `Name`Maths`Science!((`Dena; `Karansingh; `Jack); (95 90 0N); (0N 97 0N))

但它对主题(数学和科学)进行了硬编码。我不想对查询中的主题进行硬编码,因为将来可能会有不同的主题(例如历史和计算机)。我怎样才能动态地做到这一点?

kdb qsqlquery
1个回答
0
投票

相关功能q-sql:

![t;();0b;{x!(^;0),/:x}`Maths`Science]

或者使用

@
而不使用 q-sql:

@[t;`Maths`Science;0^]

您还没有发布示例查询,但如果您需要帮助来确定功能 q-sql 中的需求,那么

parse
可能会有所帮助:

q)parse"update 0^Maths,0^Science from t"
!
`t
()
0b
`Maths`Science!((^;0;`Maths);(^;0;`Science))

这两种方法都允许使用可变的列名称。

© www.soinside.com 2019 - 2024. All rights reserved.