2016-11-18 56 views
1

我有一個列名爲type的kdb表,並希望通過給定類型來選擇數據。這就像:kdb/q,保留字爲列名

select from table where type=giving_type 

它發出的一個錯誤:'type,因爲類型是在Q的保留字。

那麼該怎麼做?

+2

功能選擇,或通過查找字典語法('表[\'giving_type]')是你唯一的選擇。儘量避免使用關鍵字作爲列名,真的是 –

+0

雖然在技術上可能做到這一點(上面和下面提供的解決方案),但行爲是未定義的。其他內置功能可能會失敗。強烈建議選擇另一個列名。 – user2242865

+1

順便說一下.Q.id會爲你修復這些列名http://code.kx.com/wiki/DotQ/DotQDotid – Chromozorz

回答

2

你可以使用一個功能選擇:

?[`table;enlist (=;enlist `giving_type;`type);0b;()] 
0

一般來說,你應該避免使用KDB保留字,如「類型」作爲列名。

在這種特殊情況下,表中確實有「type」作爲列名,功能選擇是解決方案。

你可以找到通過解析功能的選擇查詢的功能形式:

parse "select from table where type=giving_type"