tba
开始日期 结束日期 单号
2012/2/1 2012/2/1 1111
2012/2/2 2012/2/2 1112
2012/2/3 2012/2/3 1113
2012/2/4 2012/2/4 1114
2012/2/5 2012/2/5 1115
2012/2/6 2012/2/6 1116
2012/2/7 2012/2/7 1117
2012/2/8 2012/2/8 1118
2012/2/9 2012/2/9 1119
2012/2/10 2012/2/10 1120
2012/2/11 2012/2/11 1121
2012/2/12 2012/2/12 1122
2012/2/13 2012/2/13 1123
2012/2/14 2012/2/14 1124
2012/2/15 2012/2/15 1125
2012/2/16 2012/2/16 1126
2012/2/17 2012/2/17 1127
2012/2/18 2012/2/18 1128
2012/2/19 2012/2/19 1129
2012/2/20 2012/2/20 1130
结果
开始日期 结束日期 单号
2012/2/5 2012/2/10 1115
2012/2/5 2012/2/10 1116
2012/2/5 2012/2/10 1117
2012/2/5 2012/2/10 1118
2012/2/5 2012/2/10 1119
2012/2/5 2012/2/10 1120
我的语句
select * from tb1
where 订单日期 between '2012-02-05' and '2012-02-05' or 单号 like '%'
结果显示为所有数据.语句应该要加上单号,但这样写不正确,应该怎么写呢?
开始日期 结束日期 单号
2012/2/1 2012/2/1 1111
2012/2/2 2012/2/2 1112
2012/2/3 2012/2/3 1113
2012/2/4 2012/2/4 1114
2012/2/5 2012/2/5 1115
2012/2/6 2012/2/6 1116
2012/2/7 2012/2/7 1117
2012/2/8 2012/2/8 1118
2012/2/9 2012/2/9 1119
2012/2/10 2012/2/10 1120
2012/2/11 2012/2/11 1121
2012/2/12 2012/2/12 1122
2012/2/13 2012/2/13 1123
2012/2/14 2012/2/14 1124
2012/2/15 2012/2/15 1125
2012/2/16 2012/2/16 1126
2012/2/17 2012/2/17 1127
2012/2/18 2012/2/18 1128
2012/2/19 2012/2/19 1129
2012/2/20 2012/2/20 1130
结果
开始日期 结束日期 单号
2012/2/5 2012/2/10 1115
2012/2/5 2012/2/10 1116
2012/2/5 2012/2/10 1117
2012/2/5 2012/2/10 1118
2012/2/5 2012/2/10 1119
2012/2/5 2012/2/10 1120
我的语句
select * from tb1
where 订单日期 between '2012-02-05' and '2012-02-05' or 单号 like '%'
结果显示为所有数据.语句应该要加上单号,但这样写不正确,应该怎么写呢?
where 订单日期 between '2012-02-05' and '2012-02-05' or 单号 like '%' 关键是这个or语句,like '%'全部了,所以都查出来了,单号 like '%'
你是不是要下面的语句select * from tb1
where 订单日期 between '2012-02-05' and '2012-02-05' or 单号 like '111%'
tba
开始日期 结束日期 单号
2012/2/1 2012/2/1 1111
2012/2/2 2012/2/2 1112
2012/2/3 2012/2/3 1113
2012/2/4 2012/2/4 1114
2012/2/5 2012/2/5 1115
2012/2/6 2012/2/6 1116
2012/2/7 2012/2/7 1117
2012/2/8 2012/2/8 1118
2012/2/9 2012/2/9 1119
2012/2/10 2012/2/10 1120
2012/2/11 2012/2/11 1121
2012/2/12 2012/2/12 1122
2012/2/13 2012/2/13 1123
2012/2/14 2012/2/14 1124
2012/2/15 2012/2/15 1125
2012/2/16 2012/2/16 1126
2012/2/17 2012/2/17 1127
2012/2/18 2012/2/18 1128
2012/2/19 2012/2/19 1129
2012/2/20 2012/2/20 1130
时间问题我已设置了,如果时间不为空的话,那么就取时间段内的订单.如果单号不为空的话,那么把所选的时间清空,然后单独查询这个单号
select * from tb1
where 订单日期 between '2012-02-05' and '2012-02-05' or 单号 like '%'
结果为
2012/2/5 2012/2/10 1115
2012/2/5 2012/2/10 1116
2012/2/5 2012/2/10 1117
2012/2/5 2012/2/10 1118
2012/2/5 2012/2/10 1119
2012/2/5 2012/2/10 1120select * from tb1
where 订单日期 between '' and '' or 单号 like '%119'
则结果为
2012/2/5 2012/2/10 1119
where 订单日期 between '2012-02-05' and '2012-02-05' or 单号 like '%' 这个语句的问题我是这么理解的(个人意见) or 的优先级别大于WHERE 所以 两个条件一个对了where 就成立。 在两个条件都成立的时候查询优化器可能选择一个最优的计划。LIKE '%' 相当于没有条件不用判断 他就自动执行WHERE 了,应该是优化器图省事的原理吧。
where 订单日期 between '2012-02-05' and '2012-02-05' or 单号 like '' select * from tb1
where 订单日期 between '' and '' or 单号 like '%119'
把两句代码合起来.时间在订单是在控件中选择的.已经做了相应的设置.
时间或订单的值只能取其中之一,不能两者兼容. 有时间值的话,订单值必为空,有订单值的话,时间值必为空.
select * from tb1
where 订单日期 between '2012-02-05' and '2012-02-05' or 单号 like '%'
新出来一个“订单日期”?是否这里错了?
您是否是这个意思
where (开始日期>='2012-02-05' and 结束日期<='2012-02-05' ) or (单号 like '%%')