在 SQL Server 2008 中使用 case 语句减去 2 行

湿婆

我的数据如下,它在一个表中

Column1   Column2
abc       100
abc       200

现在我需要像下面这样

abc 100 //here 200-100

我正在思考如何实现这一目标。

我尝试使用 row_number 然后使用 case 语句减去

Select
  column1,
  sum(
    case when rownum=1
    then column2
    end
    -
    case when rownum=2
    then column2
    end
  )
from table
group by column1

但这给了我空值。

我为 Bac 工作

假设你有一个属性rownumtable这始终是1或2(它可以通过一些ROW_NUMBER()的同时在问题提出来产生,根据适合于你任何顺序)

Column1   Column2  Rownum
------------------------ 
abc       100      1
abc       200      2

那么你可以简单地使用

Select
    column1,
    sum(
        case when rownum=1
        then column2
        else -column2
        end
    )
from table
group by column1

它执行Column2per的总和Column1,但是,在具有rownum = 2Column2的行中被否定。因此,在我们的示例中,您最终得到 100 + (-200) = -100

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

尝试在SQL Server中使用CASE语句

来自分类Dev

尝试在SQL Server中使用CASE语句

来自分类Dev

在 SQL Server 中使用嵌套的 CASE 语句

来自分类Dev

选择带有CASE语句的SQL Server 2008 R2

来自分类Dev

选择带有CASE语句的SQL Server 2008 R2

来自分类Dev

在SQL Server 2008中的case语句中排除值

来自分类Dev

SQL Server 中使用 Case 语句的嵌套 If 语句

来自分类Dev

在SQL Server中使用case语句更新多列

来自分类Dev

在SQL Server中使用case语句选择SELECT AS

来自分类Dev

如何在SQL Server中使用CASE语句

来自分类Dev

在 SQL Server 的 WHERE 子句中使用 CASE 语句

来自分类Dev

在 SQL Server 的 case 语句中使用 set

来自分类Dev

SQL SERVER 2008 Select语句

来自分类Dev

SQL SERVER 2008 Select语句

来自分类Dev

SQL Server 2008 R2:在不使用WHERE的情况下显示特定行

来自分类Dev

连接行值SQL Server 2008 R2

来自分类Dev

如何在SQL Server 2008中使用Alter Table语句设置默认值

来自分类Dev

如何在更新语句SQL Server 2008 R2中使用选择和大小写而不会出现错误

来自分类Dev

如何在 SQL Server 2008 中的 Case 语句中返回 Null

来自分类Dev

在SQL Server 2008 R2中使用XMLNS解析XML

来自分类Dev

在SQL Server 2008 R2的where子句中使用比较运算符

来自分类Dev

在SQL Server 2008 R2中使用PIVOT时获取空数据

来自分类Dev

在SQL Server 2008 R2的where子句中使用比较运算符

来自分类Dev

如何在SQL Server 2008 R2中使用小数或数字内的列

来自分类Dev

如何使用递归逻辑仅返回sql表中的Root行(SQL Server 2008 R2)

来自分类Dev

从另一列中减去一列并运行 SQL Server 2008 R2

来自分类Dev

在oracle sql中使用CASE语句

来自分类Dev

SQL Server 2008 R2不使用分配的内存

来自分类Dev

无法使用Java连接SQL Server 2008 R2

Related 相关文章

  1. 1

    尝试在SQL Server中使用CASE语句

  2. 2

    尝试在SQL Server中使用CASE语句

  3. 3

    在 SQL Server 中使用嵌套的 CASE 语句

  4. 4

    选择带有CASE语句的SQL Server 2008 R2

  5. 5

    选择带有CASE语句的SQL Server 2008 R2

  6. 6

    在SQL Server 2008中的case语句中排除值

  7. 7

    SQL Server 中使用 Case 语句的嵌套 If 语句

  8. 8

    在SQL Server中使用case语句更新多列

  9. 9

    在SQL Server中使用case语句选择SELECT AS

  10. 10

    如何在SQL Server中使用CASE语句

  11. 11

    在 SQL Server 的 WHERE 子句中使用 CASE 语句

  12. 12

    在 SQL Server 的 case 语句中使用 set

  13. 13

    SQL SERVER 2008 Select语句

  14. 14

    SQL SERVER 2008 Select语句

  15. 15

    SQL Server 2008 R2:在不使用WHERE的情况下显示特定行

  16. 16

    连接行值SQL Server 2008 R2

  17. 17

    如何在SQL Server 2008中使用Alter Table语句设置默认值

  18. 18

    如何在更新语句SQL Server 2008 R2中使用选择和大小写而不会出现错误

  19. 19

    如何在 SQL Server 2008 中的 Case 语句中返回 Null

  20. 20

    在SQL Server 2008 R2中使用XMLNS解析XML

  21. 21

    在SQL Server 2008 R2的where子句中使用比较运算符

  22. 22

    在SQL Server 2008 R2中使用PIVOT时获取空数据

  23. 23

    在SQL Server 2008 R2的where子句中使用比较运算符

  24. 24

    如何在SQL Server 2008 R2中使用小数或数字内的列

  25. 25

    如何使用递归逻辑仅返回sql表中的Root行(SQL Server 2008 R2)

  26. 26

    从另一列中减去一列并运行 SQL Server 2008 R2

  27. 27

    在oracle sql中使用CASE语句

  28. 28

    SQL Server 2008 R2不使用分配的内存

  29. 29

    无法使用Java连接SQL Server 2008 R2

热门标签

归档