| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 914 人关注过本帖
标题:怎么查询一个范围里符合的值
只看楼主 加入收藏
wyyq
Rank: 1
等 级:新手上路
帖 子:197
专家分:0
注 册:2013-2-11
结帖率:91.18%
收藏
已结贴  问题点数:8 回复次数:22 
怎么查询一个范围里符合的值
比如我要查询60~70这分数段的学生,能查询=60的学生,但不能查询=70的学生。使用between函数能等于临界值
搜索更多相关主题的帖子: between 查询 
2013-03-06 23:28
qingfameng
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:35
帖 子:964
专家分:3019
注 册:2010-2-6
收藏
得分:0 
select 学生 from 表名 where 分数>=60 and 分数<=70 into cursor tem  &&不行吗?
2013-03-07 01:03
wyyq
Rank: 1
等 级:新手上路
帖 子:197
专家分:0
注 册:2013-2-11
收藏
得分:0 
不止一个分数段,如果多的话那代码不是很长
2013-03-07 01:21
qingfameng
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:35
帖 子:964
专家分:3019
注 册:2010-2-6
收藏
得分:0 
where 查询条件,设成可变的。select 语句一句即可。
2013-03-07 01:45
wyyq
Rank: 1
等 级:新手上路
帖 子:197
专家分:0
注 册:2013-2-11
收藏
得分:0 
具体怎么做?
程序代码:
CSTR=ALLTRIM()
NUM1=INT(VAL(SUBSTR(CSTR,1,AT([~],CSTR)-1)))
NUM2=INT(VAL(SUBSTR(CSTR,AT([~],CSTR)+1)))


SELECT 成绩.学号, 成绩.姓名, 成绩.学院,成绩.专业, 成绩.班级,成绩.学期,成绩.课程名称,成绩.学分, 成绩.成绩,成绩.名次;
  FROM 成绩;

 WHERE allt(成绩.学院)==xy;
   AND allt(成绩.专业)==zy;
   AND allt(成绩.班级)==ban;
   AND 成绩.学期==val(xq);
   and allt(成绩.课程名称)==allt();
   and BETWEEN(成绩.成绩,NUM1,NUM2);
   group by 学号;
   order by 成绩 desc;

 into  dbf  学生成绩信息

 
这是我现在的代码
2013-03-07 01:51
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:335
帖 子:9848
专家分:27241
注 册:2012-2-5
收藏
得分:0 
要灵活应用,要动脑筋,事物是在不断的变化中的。

坚守VFP最后的阵地
2013-03-07 06:10
hu9jj
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:红土地
等 级:贵宾
威 望:400
帖 子:11857
专家分:43421
注 册:2006-5-13
收藏
得分:0 
方法很多啊,完全可以灵活运用:
1、动态修改查询条件,也就是用宏替换来设置查询条件;
2、用case结构
do case
  case 情况1
    select ....
  case 情况2
    select ....
.....
endcase
 

活到老,学到老!http://www.(该域名已经被ISP盗卖了)E-mail:hu-jj@
2013-03-07 06:42
tlliqi
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:204
帖 子:15453
专家分:65956
注 册:2006-4-27
收藏
得分:0 
7楼的办法可行 用do case就可解决你问题
2013-03-07 07:29
taifu945
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:80
帖 子:1545
专家分:3298
注 册:2012-7-6
收藏
得分:0 
以下是引用wyyq在2013-3-7 01:21:01的发言:

不止一个分数段,如果多的话那代码不是很长

肿么会很长呢?用OR把各个分数段连接起来不就好了吗?

SELECT ... ;
   FROM 表 ;
   WHERE 60<=成绩.成绩 AND 成绩.成绩<70 OR;
         80<=成绩.成绩 AND 成绩.成绩<90

我就不信你分数段有多到代码长得看不懂的地步。如果分数段真的很长,可以看看是否中间有可以合并的。比如:60<=成绩.成绩 AND 成绩.成绩<70 OR 70<=成绩.成绩 AND 成绩.成绩<90 就可以合并成 60<=成绩.成绩 AND 成绩.成绩<90。还有,如果某些分数段上下限距离很小的(4分之内),你可以评估一下这个分数段被查询出来是否有意义。
2013-03-07 07:37
wengjl
Rank: 14Rank: 14Rank: 14Rank: 14
等 级:贵宾
威 望:109
帖 子:2232
专家分:3913
注 册:2007-4-27
收藏
得分:0 
你们回答问题的高手,可说是社会主义的高级阶段了,提问的是社会主义的初初级阶段。所以在高手看来非常容易的,且难到了新手

只求每天有一丁点儿的进步就可以了
2013-03-07 07:50
快速回复:怎么查询一个范围里符合的值
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.018120 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved