2013-04-02 24 views
5

Şirket isimlerini içeren bir veritabanını sorgulamam gerekir. Verileri almak zorunda olduğum yaklaşık 50 isim var. Ancak, tanınmayan bir adda boşluk olarak komut kullanarak bir sorgu yazamıyorum. exSemboldeki referanslar içindeki boşluk karakteri

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

Bu, 'Cola' tanınmadığı için bana bir hata veriyor. Böyle bir sorgu yazmanın bir yolu var mı?

cevap

3

alanlarda tercüman karışık neden olur. `$() Karakterlerin listesini sembollere çevirir.

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 

Ayrıca kasanın dikkatli olmak ve ya beklenmedik boş sonuçlara neden olacağını sürekli veya küçük harf başka kullanmak isteyebilirsiniz: Ben bu kullanarak çalıştı öneri için

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

Çok teşekkürler, bu işe yaradı – Mancunia89

0

Aşağıdaki gibi bir şey yapmak gerekir: dizeleri arasına

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

sayesinde, Götürmezse Herhangi bir hata vermeyin, ancak sorgu sıfır sonuç döndürüyor, oysa veritabanında girişler olduğunu biliyorum. – Mancunia89

+0

İsim sütunu ne tür? – user1895961