日期:2014-05-18  浏览次数:20457 次

一个关于select相对疑难的问题
场景是这样的:假设我有一张表a,里面有1——100的行数据,假设列为ID,ID下有1——100的行数据。

现在我们要定义一个查询窗口,类似于一些软件的文本框一样,查询多少到多少之间的数据。而那个文本框里面是自定义的(也就是一个变量)数字,这样的话首先我们要声明两个变量对吧?一个是查询范围的最小数值也就是开始值,假设我们定义@schaxun,另一个是查询范围的最大数值也就是结束值@echaxun。

现在问题来了,我们要怎么把这个变量做一个接口关联到数据库表里面数据,也就是说我要查询10——20之间的数据,那么我们@schaxun>=10,@echaxun<=20,而我要查询30 ——70之间的数据时,那么@schaxun>=30,@echaxun<=70。这样的方法用数据库怎么实现?

PS:不考虑那个输入的窗口是哪来的,也就是说我们把@schaxun看成左边的输入窗口,而@echaxun看成右边的输入窗口

------解决方案--------------------
其实就是两个参数,可以用动态SQL语句来查询。
------解决方案--------------------
在程序中定义变量 写简单的SQL就可以实现了

select * from tb where 列>=@schaxun and 列<=@echaxun

@schaxun和@echaxun 作为查询的起始点
------解决方案--------------------
这查看你是C/S结构的应用,还是B/S结构的应用,如果是C/S的,则通过客户端定义两个端点,然后形成查询语句:
select * from tb where col between @schaxun and @echaxun
如果你是B/S结构,则应该由用户通过浏览器设置端点,然后由WEB服务器程序合成上面这句查询语句.
查询语句形成后,发送到数据库服务器,数据库服务器执行查询,获得记录集,将记录集返回客户端,由客户端作进一步的处理.