[解决办法] 呵呵,两个帖子都看了下,aa='11' or (aa<>'11' and bb='22') 和 aa='11' or bb='22' 并不等价,如果 aa='11',同时 bb='22的情况下,你的结果是 select * from t where bb='22' union select * from t where aa='11',or 条件不是 只有当 a<>11 时,才会去比较 b=22, 关于第二个帖子,好好思考下 你的这个语句 when parent_id>0 then parent_id+(select max(id) from tb) 吧, 新的 parent_id 是指向父类的id的,而不是 parent_id
[解决办法]
SQL code
declare @T table (aa varchar(2),bb varchar(2))insert into @Tselect '11','22' union allselect '00','22' union allselect '22','00' union allselect '22','11'DECLARE @aa VARCHAR(4)SET @aa='11'select * from @T WHERE aa='11' OR bb='22'/*aa bb---- ----11 2200 22 --楼主的意思是aa='11'的时候结果中不含有这条*/ [解决办法] 你开始也没说太清楚啊..蛋定.. [解决办法] JF............... [解决办法]