2016-11-18 8 views
1

カラム名がtypeのkdbテーブルがあり、データ型を指定してデータを選択したいとします。タイプがQの予約語であるため、'type:それはのエラーを発行kdb/q、列名として予約語

select from table where type=giving_type 

:ようなものです。

これはどのようにするのですか?

+2

機能の選択や検索を経由して、辞書の構文( 'テーブル[\' giving_type] ')あなたの唯一の選択肢です:

あなたはparse関数を介した選択クエリの関数形を見つけることができます。列名としてキーワードを使用することを避けるのが最も良い、実際には –

+0

これを行うことが技術的に可能ですが(上記と以下で提供されるソリューション)、動作は未定義です。他の組み込み関数は失敗することがあります。別の列名を選択することを強くお勧めします。 – user2242865

+1

ところで.Q.idはあなたのためにこれらの列名を修正しますhttp://code.kx.com/wiki/DotQ/DotQDotid – Chromozorz

答えて

2

あなたは、機能の選択を使用することができます。

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

一般的に、あなたは、このような列名として「タイプ」としてKDB予約語を使用しないでください。

テーブルが列名として「タイプ」を持つこの特定のケースでは、機能選択がソリューションです。

parse "select from table where type=giving_type"

関連する問題