簡體   English   中英

為什么鍵表中的 select 不起作用

[英]Why does not work select from a keyed table

如果我將鍵控表拆分為鍵值對並將它們組合在一起,則查詢結果看起來不錯: key!value 但是直接的 select 會給出錯誤。 我以一種有點奇怪的方式構建了那個鍵控表:

q)show t:([n:1 2] m:(`a`b!3 4;`a`b!5 6));
n| m
-| --------
1| `a`b!3 4
2| `a`b!5 6
q)t[;`m]
n| a b
-| ---
1| 3 4
2| 5 6
q)select from (key t[;`m])!value t[;`m]
n| a b
-| ---
1| 3 4
2| 5 6
q)select from t[;`m]
'type
  [0]  select from t[;`m]
       ^

這個'type錯誤來自哪里?

對我們期望的t[;`m]進行精確匹配表明事情已經發生了。 如果我們解構和重建,我們會得到它們是平等的。

q)([n:1 2]a:3 5;b:4 6)~t[;`m]
0b
q)([n:1 2]a:3 5;b:4 6)~{key[x]!value x}t[;`m]
1b

我們可以使用-8! ,不幸的是沒有很好的記錄。 似乎這些值被表示為字典的一般列表(類型 0h => 0x00 )而不是表(類型 98h => 0x62 )。

q)-8!`a`b!3 4
0x0100000029000000630b00020000006100620007000200000003000000000000000400000000000000
q)-8!t[;`m]
0x0100000078000000636200630b00010000006e0000000100000007000200000001000000000000000200000000000000000002000000630b00020000006100620007000200000003000000000000000400000000000000630b00020000006100620007000200000005000000000000000600000000000000
q)-8!([n:1 2]a:3 5;b:4 6)
0x010000006f000000636200630b00010000006e00000001000000070002000000010000000000000002000000000000006200630b0002000000610062000000020000000700020000000300000000000000050000000000000007000200000004000000000000000600000000000000

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM