数据库中两个数据表,其中一个三个字段,第一个字段和第二个字段分别是一个范围的起始值和终止值.
第三个字段是对应范围的一个属性值,第一和第二两个字段设为主键.如
起始 终止 属性
----------------------------
1 10 a
11 50 b
51 200 c
......另一个数据表有若干字段,其中一个字段是一个数值,现在要根据这个数值找到在上面表中所属的范围,取对应的范围属性.
请问各位大侠,怎么设计SQL语句比较合理.
谢谢.
第三个字段是对应范围的一个属性值,第一和第二两个字段设为主键.如
起始 终止 属性
----------------------------
1 10 a
11 50 b
51 200 c
......另一个数据表有若干字段,其中一个字段是一个数值,现在要根据这个数值找到在上面表中所属的范围,取对应的范围属性.
请问各位大侠,怎么设计SQL语句比较合理.
谢谢.
FROM 表A a,表B b WHERE b.数值字段 BETWEEN
ISNULL((SELECT 起始 FROM 表A WHERE 属性=a.属性),0) AND
ISNULL((SELECT 终止 FROM 表B WHERE 属性=a.属性),0) P.S.未经测试
----------------------------
1 10 a 9
11 50 b 39
51 200 c 149
用字段4查询不就成了。
begin
with ADOQuery1 do
begin
close;
sql.Clear;
sql.text:='select data_value from table1'+
' where data_begin<'+edit1.Text+
' and data_end>'+edit1.Text;
try
open;
edit2.Text:=Fieldbyname('data_value').AsString;
except
end;
end;
end;