------解决方案-------------------- 呵呵,两个帖子都看了下,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 @T
select '11','22' union all
select '00','22' union all
select '22','00' union all
select '22','11'
DECLARE @aa VARCHAR(4)
SET @aa='11'
select * from @T WHERE aa='11' OR bb='22'
/*
aa bb
---- ----
11 22
00 22 --楼主的意思是aa='11'的时候结果中不含有这条
*/
------解决方案-------------------- 你开始也没说太清楚啊..蛋定..
------解决方案-------------------- JF...............
------解决方案--------------------