簡體   English   中英

具有 Limit 表達式的表中的 Select 有效,沒有 - 失敗

[英]Select from a table with Limit expression works, without - fails

對於帶有自定義字段c的表t ,我可以使用帶限制表達式的 select,但簡單的 select 失敗:

q)r1: `n`m`k!111b;
q)r2: `n`m`k!000b;
q)t: ([]a:1 2; b:10 20; c:(r1; r2));
q)t
a b  c
----------------
1 10 `n`m`k!111b
2 20 `n`m`k!000b
q)select[2] c[`n] from t
x
-
1
0
q)select c[`n] from t
'type
  [0]  select c[`n] from t
              ^

這是一個錯誤,還是我遺漏了什么?

更新:

為什么select [2] c[`n] from t在這里工作?

由於 c 是一個列表,它不支持鍵索引,這就是它返回類型的原因

您需要對每個元素進行索引,而不是嘗試對列進行索引。

q)select c[;`n] from t
x
-
1
0

此上下文之外的確認詞典列表相當於一個表,因此您可以像以前一樣進行索引

q)c:(r1;r2)
q)type c
98h
q)c[`n]
10b

我會說復雜列在 memory 中的表示方式使這成為不可能。 我懷疑任何創建元素子集副本的修改都將允許列索引,因為副本將被格式化為表格。

這里的一個例子是序列化和反序列化列(推薦這樣做)。 select[n]的情況下,它選擇了 2 個元素的子集

q)type exec c from t
0h
q)type exec -9!-8!c from t
98h
q)exec (-9!-8!c)[`n] from t
10b

暫無
暫無

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

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