我有一個列名爲type
的kdb表,並希望通過給定類型來選擇數據。這就像:kdb/q,保留字爲列名
select from table where type=giving_type
它發出的一個錯誤:'type
,因爲類型是在Q的保留字。
那麼該怎麼做?
我有一個列名爲type
的kdb表,並希望通過給定類型來選擇數據。這就像:kdb/q,保留字爲列名
select from table where type=giving_type
它發出的一個錯誤:'type
,因爲類型是在Q的保留字。
那麼該怎麼做?
你可以使用一個功能選擇:
?[`table;enlist (=;enlist `giving_type;`type);0b;()]
一般來說,你應該避免使用KDB保留字,如「類型」作爲列名。
在這種特殊情況下,表中確實有「type」作爲列名,功能選擇是解決方案。
你可以找到通過解析功能的選擇查詢的功能形式:
parse "select from table where type=giving_type"
功能選擇,或通過查找字典語法('表[\'giving_type]')是你唯一的選擇。儘量避免使用關鍵字作爲列名,真的是 –
雖然在技術上可能做到這一點(上面和下面提供的解決方案),但行爲是未定義的。其他內置功能可能會失敗。強烈建議選擇另一個列名。 – user2242865
順便說一下.Q.id會爲你修復這些列名http://code.kx.com/wiki/DotQ/DotQDotid – Chromozorz