如何在SQL Server中选择行到列

dllhell

我不知道有没有迭代游标和填充临时表的可能性。我很难选择如下所示的数据:

+----------+-----------+-----------+
|TypeName  | AlarmType | AlarmCount|
+----------+-----------------------+
|Antibody  | 1         | 2         |
|Bacterium | 1         | 2         |
|Bacterium | 3         | 2         |
|CellLine  | 1         | 2         |
+----------+-----------+-----------+

变成这样的结果(有3种不同的AlarmType,但列出了2种):

+----------+-------+-------+-------+
|TypeName  | Alarm1| Alarm2| Alarm3|
+----------+-------+-------+-------+
|Antibody  | 2     | 0     | 0     |
|Bacterium | 2     | 0     | 2     |
|CellLine  | 2     | 0     | 0     |
+----------+-------+-------+-------+

如您所见,AlarmCount现在显示在相应AlarmType的“现在是”列下。如果不可能做到这一点,那么“没有光标就无法做到”也是一个很好的答案。

这是我的小提琴

普雷迪普

您可以通过两种方式执行此操作。

用于Conditional Aggregate将换位AlarmType到列并AlarmCount在每个显示相应的内容AlarmType

SELECT TypeName,
       Max(CASE WHEN AlarmType = 1 THEN AlarmCount ELSE 0 END) Alarm1,
       Max(CASE WHEN AlarmType = 2 THEN AlarmCount ELSE 0 END) Alarm2,
       Max(CASE WHEN AlarmType = 3 THEN AlarmCount ELSE 0 END) Alarm3
FROM   alarms
GROUP  BY TypeName

它可以通过做Pivot

SELECT TypeName,
       Isnull([1], 0) Alarm1,
       Isnull([2], 0) Alarm2,
       Isnull([3], 0) Alarm3
FROM   (SELECT *
        FROM   alarms) a
       PIVOT (Max(AlarmCount)
             FOR AlarmType IN([1],
                              [2],
                              [3])) piv 

注意:如果您不知道AlarmType列,则可能需要雇用Dynamic Pivot

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在SQL Server中选择行到列

来自分类Dev

如何在SQL Server的表的所有列中选择具有空值的行?

来自分类Dev

在 SQL Server 中选择行作为不同的列

来自分类Dev

如何在SQL中选择顶部行

来自分类Dev

在选择查询Sql Server中选择列

来自分类Dev

在选择查询Sql Server中选择列

来自分类Dev

如何在ASP.NET C#中从SQL Server到GridView中选择数据

来自分类Dev

如何根据sql server中行的列值从表中选择行

来自分类Dev

SQL Server:从列 B 中选择列 A

来自分类Dev

如何在SQL Server中选择第一个插入的行?

来自分类Dev

如何在SQL Server中选择第一个插入的行?

来自分类Dev

如何在Microsoft SQL Server 2008中选择特定的行

来自分类Dev

如何在SQL Server中选择顶部(@x)或仅“全部”行(不使用SET ROWCOUNT)

来自分类Dev

如何在SQL Server的3或4列中选择不同的值组合

来自分类Dev

如何在SQL Server Management Studio中自动完成“从表中选择*”中的所有列

来自分类Dev

如何在SQL Server的3或4列中选择不同的值组合

来自分类Dev

如何在SQL Server中选择3列数据作为单列

来自分类Dev

在SQL Server中选择中间行

来自分类Dev

SQL Server:从每秒中选择行

来自分类Dev

从SQL Server表中选择备用行

来自分类Dev

在SQL Server中选择N行

来自分类Dev

从“ SQL Server”列中选择IP地址

来自分类Dev

如何在SQL Server中选择行数据作为单列

来自分类Dev

如何在SQL Server中选择要显示的日期?

来自分类Dev

如何在子查询SQL Server中选择多个项目

来自分类Dev

SQL 查询从键表中选择多个条目到同一行的不同列中

来自分类Dev

如何仅在SQL Server中选择UNCOMMITTED行?

来自分类Dev

如何在sql查询中选择特定的行?

来自分类Dev

如何在SQL中选择后一行

Related 相关文章

  1. 1

    如何在SQL Server中选择行到列

  2. 2

    如何在SQL Server的表的所有列中选择具有空值的行?

  3. 3

    在 SQL Server 中选择行作为不同的列

  4. 4

    如何在SQL中选择顶部行

  5. 5

    在选择查询Sql Server中选择列

  6. 6

    在选择查询Sql Server中选择列

  7. 7

    如何在ASP.NET C#中从SQL Server到GridView中选择数据

  8. 8

    如何根据sql server中行的列值从表中选择行

  9. 9

    SQL Server:从列 B 中选择列 A

  10. 10

    如何在SQL Server中选择第一个插入的行?

  11. 11

    如何在SQL Server中选择第一个插入的行?

  12. 12

    如何在Microsoft SQL Server 2008中选择特定的行

  13. 13

    如何在SQL Server中选择顶部(@x)或仅“全部”行(不使用SET ROWCOUNT)

  14. 14

    如何在SQL Server的3或4列中选择不同的值组合

  15. 15

    如何在SQL Server Management Studio中自动完成“从表中选择*”中的所有列

  16. 16

    如何在SQL Server的3或4列中选择不同的值组合

  17. 17

    如何在SQL Server中选择3列数据作为单列

  18. 18

    在SQL Server中选择中间行

  19. 19

    SQL Server:从每秒中选择行

  20. 20

    从SQL Server表中选择备用行

  21. 21

    在SQL Server中选择N行

  22. 22

    从“ SQL Server”列中选择IP地址

  23. 23

    如何在SQL Server中选择行数据作为单列

  24. 24

    如何在SQL Server中选择要显示的日期?

  25. 25

    如何在子查询SQL Server中选择多个项目

  26. 26

    SQL 查询从键表中选择多个条目到同一行的不同列中

  27. 27

    如何仅在SQL Server中选择UNCOMMITTED行?

  28. 28

    如何在sql查询中选择特定的行?

  29. 29

    如何在SQL中选择后一行

热门标签

归档