当前位置: 代码迷 >> Sql Server >> sql话语 除法
  详细解决方案

sql话语 除法

热度:389   发布时间:2016-04-27 10:50:13.0
sql语句 除法
现在我通过sql语句实现了一下功能
id count1 count2
1 2 3
2 null 2
3 4 3
4 2 null
现在我需要在这个表的基础上实现就是增长率的运算,就是把(count2-count1)/count1;
运算的结果出来以后形成一张新的表格,类似于
id count1 count2 increase
1 2 3 0.5
。 。 。 。
。 。 。 。
。 。 。 。

要考虑除数为空或者为0的情况
求帮助

------解决方案--------------------
SQL code
USE tempdbGOCREATE TABLE test(    id int ,    count1    decimal ,    count2    decimal)INSERT INTO testSELECT 1, 2 ,3UNION ALL SELECT 2 ,NULL, 2UNION ALL SELECT 3, 4, 3UNION ALL SELECT 4 ,2 ,nullSELECT id,count1,count2,CONVERT(decimal(4,2),(ISNULL(count1,0)+ISNULL(count2,0))/ISNULL(count1,1)) FROM test /* id          count1                                  count2                                  ----------- --------------------------------------- --------------------------------------- ---------------------------------------1           2                                       3                                       2.502           NULL                                    2                                       2.003           4                                       3                                       1.754           2                                       NULL                                    1.00(4 行受影响)  */
------解决方案--------------------
SQL code
SELECT id,count1,count2,CONVERT(decimal(4,2),(ISNULL(count2,0)-ISNULL(count1,0))/(case when ISNULL(count1,0)=0 then 1 else count1 end)) FROM test
------解决方案--------------------
select count1,count2,(convert(float,count2)-convert(float,count1))/convert(float,count1) increase
 from table
  相关解决方案