如何使用查找

时间:2012-08-11 07:43:59

标签: oracle

查询表: -

FROM_METER  TO_METER    COST
1             5         0.004
6             10        0.006
11            20        0.012 

需要的输出: - (此处为15和7,例如成本输出将来自查找主机)

METER  COST
15     0.012
7      0.006 
etc.... 

2 个答案:

答案 0 :(得分:2)

通常使用查找表来提供常规数据的代码或参考值。假设您的业务表是您称为MASTER的业务表,您可以将其记录加入到您的查找中,如下所示:

select m.meter
       , l.cost
from master m
      join lookup l
            on ( m.meter between l.meter_from and l.meter_to)

您的数据模型会出现问题:它不能保证MASTER表中的每个METER都会在查找表中找到匹配的记录。这就是为什么更常见的方法是使用类型或类别(比如说“便宜”,“合理”,“昂贵”)。

显然,如果不了解你的业务情况,我很难说你的模型是否正确,但你可能应该考虑如果MASTER表没有匹配的行怎么办。也许这种关系是在应用程序中强制执行的,但根据我的经验,这种方法很难使其具有防弹性。

答案 1 :(得分:1)

select ? Meter, cost from Lookup 
where ? > = FROM_METER  
and  ? < = TO_METER  

用您的参数替换?