首页 新闻 会员 周边 捐助

数据库存的是50-80㎡,用户输入70,如何返回所有的满足条件的信息?

0
悬赏园豆:20 [已解决问题] 解决于 2009-09-06 02:37

问题:

房源表有一个面积字段

面积它有 两种情况,1 明确的值2一个区域

用户界面层输入一个50,那么如何查询所有满足条件的信息呢?

比较棘手,大家帮我看看。

 

Insert into area values('徐家汇商圈','50')
Insert into area values('不夜城商圈','40-50')
Insert into area values('长宁商圈','50-60')

 

Create table HouseInfo
(
houseID
int primary key identity not null,
houseName
varchar(200) not null,
AreaValue
varchar(50) not null
)
Insert into area values('徐家汇商圈','50')
Insert into area values
问题补充: create table test ( id int primary key identity not null, col1 int not null, col2 int not null, ) declare @a int,@b int set @a=1 set @b=1 while @a<100000 begin insert into test (col1,col2) values(@a,@b) set @a=@a+1 set @b=(@a+1)*5-2 end declare @input int set @input = 1 select id,col1,col2 from test where @input between col1 and col2 谢谢你们,我用两个字段来存分区的值。
21天后的主页 21天后 | 初学一级 | 园豆:3
提问于:2009-09-05 05:01
< >
分享
最佳答案
0

这是数据库设计的缺陷,可以做得到。但是效率会很差的。

给个伪代码你看看:

var q = db.HouseInfo.Where( o=> o.AreaValue.Length == 2 ? 
        Convert.ToInt32(o.AreaValue) <= 70:
        Convert.ToInt32(o.AreaValue.Substring(2) <= 70);

收获园豆:10
麦舒 | 菜鸟二级 |园豆:452 | 2009-09-05 08:45
我修改了我的表结构。
21天后 | 园豆:3 (初学一级) | 2009-09-06 02:37
其他回答(2)
0

我用的是ORACLE

select * from (
select houseinfo.*,decode(Substr(areavalue,1,instr(areavalue,'-')-1),null,areavalue,Substr(areavalue,1,instr(areavalue,'-')-1)) as minArea
from houseinfo) t1 where  t1.minArea>=50

收获园豆:10
clound | 园豆:481 (菜鸟二级) | 2009-09-05 11:02
谢谢,写出这么复杂的查询来。
支持(0) 反对(0) 21天后 | 园豆:3 (初学一级) | 2009-09-06 02:36
0

412424

严鹏 | 园豆:228 (菜鸟二级) | 2009-09-05 14:59
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册