查询条件的奇怪问题
最近遇到一个比较头疼的问题,在做通用查询时,需要对不同字段的逻辑条件连接后设定过滤条件,可是发现PB9的数据窗口的过滤字符串第一个逻辑条件不能设定为包含操作,举例如下:
可以通过的过滤字符串:
字段1 like '%1%'
字段1 =(>,<,<>) '1'
字段1 =(>,<,<>) '1' and(or)字段2 =(>,<,<>) '2'
字段1 =(>,<,<>) '1' and(or)字段2 like '%2%'
字段1 =(>,<,<>) '1' and(or)字段2 =(>,<,<>) '2' and(or)字段3 like '%3%'
不能通过的
字段1 like '%1% and(or)字段2 like '%2%'
字段1 like '%1% and(or)字段2 =(>,<,<>) '2'
字段1 like '%1% and(or)字段2 =(>,<,<>) '2' and(or)字段3 like '%3%'
字段1 =(>,<,<>) '1' and(or)字段2 like '%2%' and(or)字段3 =(>,<,<>) '3'
也就是说,当条件有两个以上需要连接生成过滤条件时,第一个条件不能为LIKE,在PB9数据窗的SPECIFY FILTER的工具窗口时也可以得知,系统对此类字符串认为非法条件。另外也不能有两个以上LIKE的逻辑条件。即使只有一个(LIKE)条件,也只能放在最后进行设定
我也可以要求用户在使用软件收,进行过滤操作,如果要设字符串的逻辑条件,不要在第一个字段进行勾选包含选项(like),而应该放在最后进行设置。同时不要设定两个以上的包含条件。但这毕竟不是解决问题的最终办法,请问应该如何解决?
[解决办法]
每个字段的条件都加上括号呗
字段1 like '%1% and(or)字段2 like '%2%'
改成
(字段1 like '%1% )and(or)( 字段2 like '%2%' )