select name1,name2,name1/name2*100 from tablename

解决方案 »

  1.   

    select ((name1*10/name2)+(name1*10%name2)*10/name2*0.1) 
    as name1除以name2的百分比 
    from table这只适用2位数,如果更多的话可以类似的代入。
      

  2.   

    我要的是直接就显示为一个百分数的值,
    nam1 name2 百分比
    22   56     30%
    33   67     67%
    45   68     56%
    就这种形式
      

  3.   

    select name1,mame2,cast(name1/name2*100 as nvarchar)+'%' from table
      

  4.   

    那你应该把类型转换为 varchar 否则报错:将数据类型 varchar 转换为 numeric 时出错
    因为%是varchar类型的,他们的类型不一样
      

  5.   

    现在行了,不过楼上的有点小错误
    应该是
    select nam1,name2,cast(name1*100/name2 as nvarchar)+'%' from table如果是name1/name2*100 这样结果都会为0的,因为name1和name2是INT类型,返回结果只有整数0
      

  6.   

    select name1,name2,cast((name1*100/name2) as varchar)+'%' from aaa
      

  7.   


    select name1,name2,left((cast(name1 as float)/cast(name2 as float))*100,5)+'%' as per  from #table1
      

  8.   

    把括号里的换成
    ((name1*10/name2)+(name1*10%name2)*10/name2*0.1+((name1*10%name2)*10/name2*0.1)*10/name2*0.1) 
    如果要更多的小数位的话,类似的往后扩展就可以了。