相同类型的列,但在kdb中输出不同的空值

时间:2017-06-29 20:08:38

标签: kdb

我使用lj连接两个表,当我尝试比较是否存在任何差异时,我注意到同一类型的空值有两个不同的输出。

meta tab
`cumQty "i" `   `
`cumQty "i" `   `


tab:

"x0"    0j  0Nj
"x2"    0j  0Nj
"x4"    0j  0Nj
"x6"    0j  0Nj

你知道为什么会这样吗?我试图将最后一列转换为int但仍然是相同的事情:最后一列总是带有N。

有没有解决方案?

2 个答案:

答案 0 :(得分:1)

您能提供样本数据表吗?

上面示例中的

0j看起来像long j类型的零值,而不是null long值,即0Nj

将最后一列转换为任何其他类型会将列更改为该列的null类型,即您从null long转换为null int

q)0N 0N 0N 0Nj
0N 0N 0N 0N
q)`int$0N 0N 0N 0Nj
0N 0N 0N 0Ni

'N'表示空值,列表末尾的小字符ij分别表示列表数据类型(intlong);请点击此处了解更多code.kx DataTypes

答案 1 :(得分:0)

当您对空值列表求和时,您将得到0。

q)sum 0N 0N 0N 0Nj
0

当你执行lj时,对于不在右表中的id,它将返回null

这是你的问题吗?

需要更多信息来进一步说明您所看到的内容。