sql 在进行逻辑判断是返回的值不是0,1 而是0,-1,条件成立则为-1,不成立则为 0,呵呵,不知有没有人发现过 如 Sql = " select 1=1 from [sheet1$a1:c8] " 返回值都是 -1 Sql = " select 2=1 from [sheet1$a1:c8] " 返回值都是 0 假设表格如下 aa bb cc 1 1 1 1 1 2 2 4 7 2 4 4 2 5 2 查找aa,bb 相同记录,普通写法: Sql = " select * from [sheet1$a1:c8] where aa=bb "
也可以 Sql = " select * from [sheet1$a1:c8] where (aa=bb)=-1 查找aa,bb 不相同记录,普通写法: Sql = " select * from [sheet1$a1:c8] where aa<>bb "
也可以 Sql = " select * from [sheet1$a1:c8] where (aa=bb)=0 查找aa,bb ,cc 全相同记录,普通写法: Sql = " select * from [sheet1$a1:c8] where aa=bb and aa=cc " 新写法 Sql =Sql = " select * from [sheet1$a1:c8] where (aa=bb)*(aa=cc)<>0 " 查找aa=bb 或 bb=cc 但不包含 aa=bb=cc 的 相同记录,普通写法: Sql = " select * from [sheet1$a1:c8] where (aa=bb and bb<>cc ) or (bb=cc and aa<>cc) " 新写法 Sql = " select * from [sheet1$a1:c8] where (aa=bb)+(bb=cc)=-1 " 如果aa=bb 则aa的值减去1 ,普通写法: Sql = " select iif(aa=bb,aa-1,aa) from [sheet1$a1:c8] " 新写法 Sql = " select aa+(aa=bb) from [sheet1$a1:c8] "
这种写法在逻辑比较复杂是应该有实用效果
[此贴子已经被作者于2008-9-4 19:46:01编辑过] |