请教个问题
create table b
( a int,
  b int,
)
insert into b values(0,0);
insert into b values(0,1);
insert into b values(1,1);
我要得到如下数据
A  B  C=A/(A+B)
0  0  0 
0  1  0 
1  1  0
当分母是0的时候,我让分母为1,就可以不让程序出错,请问这个SQL 要怎么写?

解决方案 »

  1.   

    select a,b,a/(case (a+b) when 0 then 1 else (a+b) end)
    from t
      

  2.   

    select A,B,case when A+B=0 then 'Error' else cast(A/(A+B)as varchar) end as c from b
      

  3.   

    create table b
    ( a int,
      b int,
    )
    insert into b values(0,0);
    insert into b values(0,1);
    insert into b values(1,1)select a,
           b,
           c=a/case when b=0 then 1 else b end
    from bdrop table b
      

  4.   

    select A,B,case a+b when 0 then a else A/(A+B) end as c
    from tablename 
      

  5.   


    Select 
    a,
    b,
    (Case a+b When 0 Then 0 Else a/(a+b) End) As c
    from b
      

  6.   

    create table b
    ( a int,
      b int,
    )
    insert into b values(0,0);
    insert into b values(0,1);
    insert into b values(1,1)select a,
           b,
           c=(a+0.0)/case when b=0 then 1 else (a+b) end
    from bdrop table b--看错了,使a/a+b
      

  7.   

    create table b
    ( a int,
      b int,
    )
    insert into b values(0,0);
    insert into b values(0,1);
    insert into b values(1,1);
    GO
    Select 
    a,
    b,
    (Case a+b When 0 Then 0 Else a/(a+b) End) As c
    from b
    --Result
    /*
    a b c
    0 0 0
    0 1 0
    1 1 0
    */
      

  8.   

    select A,B,A/(case when (A+B)=0 then 1 else (A+B) end) from b
      

  9.   

    select a,b,a/(case when a+b=0 then 1 else a+b end) as c from b
      

  10.   


    create table b
    ( a int,
    b int,
    )
    insert into b values(0,0);
    insert into b values(0,1);
    insert into b values(1,1)select a,
    b,
    c=(a+0.0)/case when (a+b=0) then 1 else (a+b) end
    from bdrop table b