| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 688 人关注过本帖
标题:应该是个带有共性的查询问题
只看楼主 加入收藏
qingfameng
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:35
帖 子:964
专家分:3019
注 册:2010-2-6
收藏
得分:2 
楼主的想法不可能存在。因为逻辑上不合理。select * from 表 ..  where 姓名=x 。
这里,只要有 where 条件, x 必须置值,否则别写 where 从句。一个参数的,不写 where 句子当然可以,因为是无筛选条件,2个参数的,比如:姓名,住址。想做个省略筛选出姓名的全部?和住址的全部? 那么:select 姓名,住址 ,不对这2个字段加条件,就是全查! 8.0 后的 select ..  group by 为何不同于 6.0?就是为了防止,当查询条件不很固定时,会出现不期望的查询数据。(仅供参考)
2013-02-23 21:51
taifu945
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:80
帖 子:1545
专家分:3298
注 册:2012-7-6
收藏
得分:2 
以下是引用jiguanqiang8在2013-2-23 12:42:48的发言:

这样做当然可以,我的意思cxm=allt(thisform.text1.value)
不管cxm是否空值,都用一个语句SELECT * FROM TT where 姓名=cxm,只是你能不能当CXM为空时,给cxm附一个值,使它查询出来的效果等于SELECT * FROM TT
思路如你所说。但CXM为空时,也就意味着那个文本框没有任何内容,那么通过ALLTRIM()计算出的结果就等于""(空字符串),于是查询语句相当于:SELECT * FROM TT where 姓名="",当字符串和空串用一个等号比较时,相当于不设条件。所以,不需要此时给CXM另外赋值。
2013-02-23 21:52
jiguanqiang8
Rank: 1
等 级:新手上路
帖 子:154
专家分:2
注 册:2013-2-7
收藏
得分:0 
谢谢大家给我的解答,尤其是Tiger5392给我看的条件查询,有点豁然开朗的感觉,原来可以先设置条件,效率会提高很多,以前对于多条件就是采取每一个条件用一个SELECT语句,效率很低
2013-02-23 23:07
dragonmanyu2
Rank: 2
等 级:论坛游民
帖 子:36
专家分:12
注 册:2013-2-13
收藏
得分:2 
我也遇到这个问题,想了很久,后来是这么解决的:
select * from 表 where iif(!empty(表),姓名=“张三”,姓名=“%”)
希望对你有帮助,我是在VFP9和WINXP下运行成功的
2013-02-25 14:41
快速回复:应该是个带有共性的查询问题
数据加载中...
 
   



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

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