以符号为键的 kdb 字典的联合连接工作但不是长键?

sig*_*tti 0 dictionary kdb union-join

以符号作为键的 KDB 字典的联合连接正在工作,但当键更改为 long 类型时;字典连接不起作用?

Q码

k1:`1`2`3

v1: 1 2 3

k2:`2`3`4 

v2:2 3 4

//works
(enlist k1!v1) uj (enlist k2!v2)

k1:1 2 3

v1:1 2 3

k2:2 3 4 

v2:2 3 4

//not working
(enlist k1!v1) uj (enlist k2!v2)

why key list type change is not acceptable?
Run Code Online (Sandbox Code Playgroud)

小智 5

这里的问题是联合联接只能应用于表。在您的第一个示例中,将列标题作为符号连接两个表,如类型 98h 所示:

k1:`1`2`3
v1: 1 2 3

type (enlist k1!v1)
98h
Run Code Online (Sandbox Code Playgroud)

但是,在您的第二个示例中,由于列标题是 long 而不是符号,因此这些实际上是类型 0h 指示的一般列表:

k1: 1 2 3

type (enlist k1!v1)
0h
Run Code Online (Sandbox Code Playgroud)

因此,由于参数不是表格,因此无法应用 uj。

您可以在此处阅读有关联合联接的更多信息:https : //code.kx.com/q4m3/9_Queries_q-sql/#997-union-join