タイプ C (すなわち文字配列) で KDB テーブルを定義しました。挿入した最初の値は String 型でした。2 番目の値の型は int (つまり i) でした。ここで、条件を指定して KDB にクエリを実行しようとしても、うまくいきwhere like="value"
ません。where
1 つの列に型が混在しているため、この列に基づいてデータを照会し、フィルター処理 (節で使用) するにはどうすればよいでしょうか?
質問する
1035 次
2 に答える
5
単一の列に文字列と整数を混在させるのはひどい考えなので、ここで解決策を示したくありません。パフォーマンスを完全に破壊し、kdb が提供する利点をすべて妨げます。
何よりもまず、セットアップを再考してください。
そのままにしておくことを主張する場合は、次のようにクエリできます。
tab:([] col1:`a`b`c;col2:1 2 3;col3:("foo";"bar";1i))
完全一致の場合
q)select from tab where col3~\:"foo"
col1 col2 col3
---------------
a 1 "foo"
q)select from tab where col3~\:1i
col1 col2 col3
--------------
c 3 1
正規表現マッチングの場合
q)select from tab where {$[10h=type x;x like "f*";0b]}'[col3]
col1 col2 col3
---------------
a 1 "foo"
しかし、警告もアドバイスも受けていないとは言わないでください。
于 2015-02-10T14:01:21.413 に答える