我的数据表里有6个字段分别为a1,a2,a3,a4,a5,a6,都是float型
我要在存储过程中实现搜索出这6个字段中只有一个非0的数据
即其中5个字段值为0,只有一个字段的值为非0
请帮帮小弟
谢过了

解决方案 »

  1.   

    where a1=0 and a2<>0 and a3<>0 and a4<>0 and a5<>0 and a6<>0 
    or
    where a2=0......
      

  2.   

    where a1<>0 and a2=0 and a3=0 and a4=0 and a5=0 and a6=0 
    or
    where a2<>0......
      

  3.   

    where (a1<>0 and a2=0 and a3=0 and a4=0 and a5=0 and a6=0 )
    or
    (a2<>0......)
      

  4.   

    select * from t
    where a1 = abs(a1)+abs(a2)+abs(a3)+abs(a4)+abs(a5)+abs(a6) or
          a2 = abs(a1)+abs(a2)+abs(a3)+abs(a4)+abs(a5)+abs(a6) or
          a3 = abs(a1)+abs(a2)+abs(a3)+abs(a4)+abs(a5)+abs(a6) or
          a4 = abs(a1)+abs(a2)+abs(a3)+abs(a4)+abs(a5)+abs(a6) or
          a5 = abs(a1)+abs(a2)+abs(a3)+abs(a4)+abs(a5)+abs(a6) or
          a6 = abs(a1)+abs(a2)+abs(a3)+abs(a4)+abs(a5)+abs(a6)哈哈 效率不好 如果没有负数可以把ABS去掉那样就好多了
    select * from t
    where a1 = a1+a2+a3+a4+a5+a6 or
          a2 = a1+a2+a3+a4+a5+a6 or      
          a3 = = a1+a2+a3+a4+a5+a6 or      
          a4 = = a1+a2+a3+a4+a5+a6 or
    ...........
      

  5.   

    to smaworm() 
    可以解析一下其中道理吗??