2011-08-24 37 views
0

我有一个表product检索名称取决于价格条件

product_id 
product_name 
product_price 

我怎样才能检索其价格范围是产品名称:

1) 0-500 
2) 500 - 1000 
3) 1000+ 

是否有可能检索产品根据这些条件命名?

+0

您是否在寻找3个单独的查询? –

+0

是否可以在单个实体查询中编写三个条件... –

+0

或者是否可以编写单独条件...... –

回答

2

假设这些是单独的查询,并且price从不为负:

var products1 = products.where(p=> p.product_price < 500); 
var products2 = products.where(p=> p.product_price >=500 && p.product_price < 1000); 
var products3 = products.where(p=> p.product_price >=1000); 

包括较低值,但不包括上层值。

+0

..... –

1
var range1 = from p in products 
     where p.product_price > 0 && product_price < 500 
     select p; 

var range2 = from p in products 
     where p.product_price >= 500 && product_price < 1000 
     select p; 

var range3 = from p in products 
     where p.product_price >= 1000 
     select p; 
+0

我认为您想要“p.product_price” –

+0

更新回答,谢谢:) – Damith

+0

不仅p.product_price,我想产品表中的所有列 –

0

我建议先返回所有结果,然后再分开。而不是对数据库进行3个独立的查询。

var prods = (from p in products 
      select p).ToList(); 

var range1 = from p in prods 
      where p.product_price > 0 && p.product_price < 500 
      select p; 

var range2 = from p in prods 
      where p.product_price >= 500 && p.product_price < 1000 
      select p; 

var range3 = from p in prods 
      where p.product_price >= 1000 
      select p;