2013-04-02 12 views
5

私は会社の名前を含むデータベースを照会する必要があります。私は約50の名前のリストを持っています。そのためには、データを取得する必要があります。しかし、私はinコマンドを使用してクエリーを書くことができません。なぜなら、認識されていない名前にスペースがあるからです。 exシンボルリテラル内の空白文字

select from sales where name in (`Coca Cola, `Pepsi) 

「Cola」が認識されないため、エラーが発生しています。そのようなクエリを書く方法はありますか?

答えて

3

スペースはインタプリタが混乱を引き起こします。 `$()は文字のリストをシンボルにキャストします。

q)t:([] a:1 2 3; name:`$("coca cola";"pepsi";"milk")) 

q)select from t where name in `$("coca cola";"pepsi") 
a name 
----------- 
1 coca cola 
2 pepsi 

ます。また、ケーシングの注意が必要とのいずれかの予期しない空の結果引き起こすそのほかの一貫小文字または大文字を使用することもできます。提案のための

q)select from t where name in `$("Coca Cola";"Pepsi") 
a name 
------ 

q)select from t where upper[name] in upper `$("Coca Cola";"Pepsi") 
a name 
----------- 
1 coca cola 
2 pepsi 
+0

ありがとう、これは働いた – Mancunia89

0

は、次のような何かをする必要があります:文字列の間

select from sales where name in `$("Coca Cola";"Pepsi") 
+0

おかげで、私はそれはdoesnの、これを使用してみました何らかのエラーが出ますが、クエリはゼロの結果を返しますが、データベースにはエントリがあることがわかります。 – Mancunia89

+0

名前の列はどのタイプですか? – user1895961

関連する問題