免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1839 | 回复: 2
打印 上一主题 下一主题

求教一个SQL语句的写法…谢谢! [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-10-28 23:03 |只看该作者 |倒序浏览
10可用积分
一个查询页面,有5个查询条件(比如分别为:UserNo,UserName,Mobile,StartTime和EndTime),
其中StartTime和EndTime为时间控件会自动输入当前时间,但是UserNo,UserName,Mobile是可以输入,也可以不输入的
所以查询语句里的where条件StartTime和EndTime是肯定会有的,UserNo,UserName,Mobile可能会有也可能不会有

我的SQL语句是:
     select * from userinfo where (userno is null or userno = '' or atf_userno = userno ) and
                                            (username is null or username = '' or atf_username = username ) and
                                            (mobile is null or mobile = '' or atf_mobile = mobile ) and
                                            to_number(substr(atf_subtime,0,8 )) >= to_number(starttime) and
                                            to_number(substr(atf_subtime,0,8 )) <= to_number(endtime);

如果不输入别的条件只有起、始时间的话,查询是对的,但是输入另外的条件查询,结果就不对…

请教该怎么修改?多谢!

[ 本帖最后由 黄浦江 于 2009-10-28 23:04 编辑 ]

论坛徽章:
0
2 [报告]
发表于 2009-11-01 19:45 |只看该作者
搂主写的应该是对的,
     select * from userinfo
              where (nvl(userno,'') = '' or atf_userno = userno ) and
                         (nvl(username,'') = '' or atf_username = username ) and
                         (nvl(mobile,'')='' or atf_mobile = mobile ) and
                          to_number(substr(atf_subtime,0,8 )) >= to_number(starttime) and
                          to_number(substr(atf_subtime,0,8 )) <= to_number(endtime);
执行结果不对,能否详细说明以下哪地方不正确

论坛徽章:
2
丑牛
日期:2014-06-11 13:55:04ChinaUnix元老
日期:2015-02-06 15:16:14
3 [报告]
发表于 2009-11-01 19:54 |只看该作者
单从语句看没什么问题呀
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP