sql 怎么查询出具体值对应的数据库中存储的文本范围不等式所在的行
sql 如何查询出具体值对应的数据库中存储的文本范围不等式所在的行
如:数据库中字段【A值范围】的数据格式为:”30<A<=90“,
标签号 A值范围
A001 30<=A<90
A002 30<=A<90
A003 0<=A<30
A004 0<=A<30
而现在的A值为45,怎么通过sql语句查询出对应的记录?
注:
数据库中的数据是看不见并且是持续而间断维护的的,现在只是知道字段【A值范围】是不等式格式的数据,
我要通过不同的A的输入值(比如客户端输入值为45)得出相应的标签号,但事先我并不知道数据表字段【A值范围】存在值“30<=A<90”
------解决思路----------------------
------解决思路----------------------
这个数据库谁设计的?
应该设计为这样:
A_Min
A_Max
然后就一句select * from table where A_Min<=@A and A_MAX> @A
如:数据库中字段【A值范围】的数据格式为:”30<A<=90“,
标签号 A值范围
A001 30<=A<90
A002 30<=A<90
A003 0<=A<30
A004 0<=A<30
而现在的A值为45,怎么通过sql语句查询出对应的记录?
注:
数据库中的数据是看不见并且是持续而间断维护的的,现在只是知道字段【A值范围】是不等式格式的数据,
我要通过不同的A的输入值(比如客户端输入值为45)得出相应的标签号,但事先我并不知道数据表字段【A值范围】存在值“30<=A<90”
------解决思路----------------------
记得结贴
create table tempTable
(
number varchar(20),
express varchar(20)
)
GO
DECLARE @temp int
set @temp = 18
DECLARE @value VARCHAR(10)
BEGIN
-- 定义游标.
DECLARE c_test_main CURSOR FAST_FORWARD FOR
SELECT city FROM A;
-- 打开游标.
OPEN c_test_main;
--填充数据.
FETCH NEXT FROM c_test_main INTO @value
--假如检索到了数据,才处理.
WHILE @@fetch_status = 0
BEGIN
--select @value;
declare @i int,@j int,@numLeft int, @numRight int
set @i = CHARINDEX('<=',@value,0)
--select @i
set @numLeft = SUBSTRING(@value,0,@i)
--select @numLeft
set @j = CHARINDEX('<',@value,@i+1)
--select @j
set @numRight = SUBSTRING(@value,@j+1,LEN(@value)-@j)
--select @numRight
if @temp>=@numLeft and @temp<@numRight
begin
insert into tempTable(number,express)
select num,city from A where city = @value
end
--填充下一条数据.
FETCH NEXT FROM c_test_main INTO @value;
END;
-- 关闭游标
CLOSE c_test_main;
--释放游标.
DEALLOCATE c_test_main;
END;
select distinct * from tempTable
------解决思路----------------------
这个数据库谁设计的?
应该设计为这样:
A_Min
A_Max
然后就一句select * from table where A_Min<=@A and A_MAX> @A