如何建立一个查询,将SELECT的行选择为SQL的列?

布雷特·香德罗(Bret Shandro)

如何在SQL Server中编写查询,为每个唯一ID的每个变量返回一列?以下是我要完成的工作的简化示例。您能为我指明正确的方向吗?

Table_Exists

ID    |    LOCATION    |    STATUS
__________________________________
001   |     top        |     3
001   |     mid        |     1
001   |     bot        |     4
002   |     top        |     2
002   |     mid        |     2
002   |     bot        |     1
003   |     top        |     1
003   |     mid        |     4
003   |     bot        |     2

这是我正在尝试的简化示例,显然没有成功。下面的代码返回错误消息,提示“ =”周围的语法不正确:

SELECT  
  ID,
  LOCATION = top AS Top,
  LOCATION = mid AS Middle,
  LOCATION = bot AS Bottom
FROM 
  Table_Exists

我试图建立:

Table_Desired

ID | Top | Middle | Bottom 
__________________________
001|  3  |   1    |  4
002|  4  |   2    |  2 
003|  1  |   4    |  2
卢卡斯·索兹达(Lukasz Szozda)

您可以使用自我联接(只要您LOCATION自我联接NOT NULL并且它包含所有top/mid/bot值):

 SELECT t1.ID, t1.Status AS Top, t2.Status AS Middle, t3.Status AS Bottom
 FROM Table_Exists t1
 JOIN Table_Exists t2
   ON t1.ID = t2.ID
  AND t1.LOCATION = 'top'
  AND t2.Location = 'mid'
 JOIN Table_Exists t3
   ON t1.ID = t3.ID
  AND t1.LOCATION = 'top'
  AND t3.Location = 'bot';

LiveDemo

对于更通用的解决方案,请使用PIVOT

SELECT
     [ID]
    ,[Top]    = [top] 
    ,[Middle] = [mid]
    ,[Bottom] = [bot]
FROM #Table_Exists t
PIVOT (
   MAX(STATUS) FOR LOCATION IN ([top],[mid],[bot])
) AS Piv

LiveDemo2

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何基于另一个列的值在SQL选择查询中创建/添加列?

来自分类Dev

用一个SQL查询选择两行

来自分类Dev

在一个选择查询中计算多个聚合函数时,SQL Server如何遍历行

来自分类Dev

如何在mysql中使用一个SQL查询选择多个静态行

来自分类Dev

如何将 SQL 查询结果用作另一个查询中的列?

来自分类Dev

尝试建立一个SQL SELECT查询以显示出现次数最多的用户

来自分类Dev

SQL 查询:如何使用一个查询检查 * 多个 * 行和列的存在

来自分类Dev

将所有查询的列打印为一个

来自分类Dev

我如何将这两列连接为一个查询?

来自分类Dev

如何基于一个条件为真的列选择行

来自分类Dev

如何从组查询的列中选择一个值

来自分类Dev

如何从组查询的列中选择一个值

来自分类Dev

如何使用SQL SELECT基于另一个表中的特定行查询表

来自分类Dev

SQL-将选择语句中具有不同列数的两个查询合并为一个

来自分类Dev

建立一个SQL“ toxi”标签系统,如何选择带有特定标签的项目?

来自分类Dev

如何建立一个复杂的MongoDB查询?

来自分类Dev

如何将这两个选择查询合并为一个查询?

来自分类Dev

SQL查询,如何选择下一个值为当前值+1的间隔,标识下一个间隔并保持其他所有不变?

来自分类Dev

SQL Server-查询。如何将一列分成2个,行ID重复?

来自分类Dev

SQL Server-查询。如何将一列分为2个,行ID重复?

来自分类Dev

SQL IF SELECT查询为null,然后执行另一个查询

来自分类Dev

将选择查询的转置插入另一个表的 SQL 查询

来自分类Dev

SQL Server 2012-使用自定义列将12 Union Union减少为一个查询

来自分类Dev

如何在 SQL 查询中连接同一表中的列以将它们显示为一个?

来自分类Dev

sql查询以基于上一个查询从表中选择随机行

来自分类Dev

如何将多列堆叠为一个?

来自分类Dev

如何将这2个SQL查询合并为一个SQL查询

来自分类Dev

当值基于另一列中的值时,如何将多个SELECT语句压缩为一个?

来自分类Dev

如何编写一个Kusto查询以基于列中的值将n个连续的行分组

Related 相关文章

  1. 1

    如何基于另一个列的值在SQL选择查询中创建/添加列?

  2. 2

    用一个SQL查询选择两行

  3. 3

    在一个选择查询中计算多个聚合函数时,SQL Server如何遍历行

  4. 4

    如何在mysql中使用一个SQL查询选择多个静态行

  5. 5

    如何将 SQL 查询结果用作另一个查询中的列?

  6. 6

    尝试建立一个SQL SELECT查询以显示出现次数最多的用户

  7. 7

    SQL 查询:如何使用一个查询检查 * 多个 * 行和列的存在

  8. 8

    将所有查询的列打印为一个

  9. 9

    我如何将这两列连接为一个查询?

  10. 10

    如何基于一个条件为真的列选择行

  11. 11

    如何从组查询的列中选择一个值

  12. 12

    如何从组查询的列中选择一个值

  13. 13

    如何使用SQL SELECT基于另一个表中的特定行查询表

  14. 14

    SQL-将选择语句中具有不同列数的两个查询合并为一个

  15. 15

    建立一个SQL“ toxi”标签系统,如何选择带有特定标签的项目?

  16. 16

    如何建立一个复杂的MongoDB查询?

  17. 17

    如何将这两个选择查询合并为一个查询?

  18. 18

    SQL查询,如何选择下一个值为当前值+1的间隔,标识下一个间隔并保持其他所有不变?

  19. 19

    SQL Server-查询。如何将一列分成2个,行ID重复?

  20. 20

    SQL Server-查询。如何将一列分为2个,行ID重复?

  21. 21

    SQL IF SELECT查询为null,然后执行另一个查询

  22. 22

    将选择查询的转置插入另一个表的 SQL 查询

  23. 23

    SQL Server 2012-使用自定义列将12 Union Union减少为一个查询

  24. 24

    如何在 SQL 查询中连接同一表中的列以将它们显示为一个?

  25. 25

    sql查询以基于上一个查询从表中选择随机行

  26. 26

    如何将多列堆叠为一个?

  27. 27

    如何将这2个SQL查询合并为一个SQL查询

  28. 28

    当值基于另一列中的值时,如何将多个SELECT语句压缩为一个?

  29. 29

    如何编写一个Kusto查询以基于列中的值将n个连续的行分组

热门标签

归档