Sql server 如何使用存储在列而不是行中的数据创建表?

Sql server 如何使用存储在列而不是行中的数据创建表?,sql-server,Sql Server,我有一个表,有3列:商店id、产品类型、产品数量,如下所示: store1 shirt 3 store1 hat 2 store2 shirt 1 store3 hat 4 我想将此表转换为以下格式(衬衫数量在第2列,帽子数量在第3列): 如何编写select语句来执行此操作?谢谢。尝试对行进行多个聚合: SELECT store, Sum(CASE WHEN product='shirt' THEN quantity ELSE 0 END) AS shirts, Sum(CA

我有一个表,有3列:商店id、产品类型、产品数量,如下所示:

store1 shirt 3
store1 hat   2
store2 shirt 1
store3 hat   4
我想将此表转换为以下格式(衬衫数量在第2列,帽子数量在第3列):


如何编写
select
语句来执行此操作?谢谢。

尝试对行进行多个聚合:

SELECT store, Sum(CASE WHEN product='shirt' THEN quantity ELSE 0 END) AS shirts,
    Sum(CASE WHEN product='hat' THEN quantity ELSE 0 END) AS hats
FROM YourTable
GROUP BY store

如果你不是这个意思,你必须提供更多信息。

这个问题没有显示任何研究成果。做家庭作业很重要。告诉我们你发现了什么,为什么它不能满足你的需要。这表明你花了时间来帮助自己,这使我们不必重复显而易见的答案,而且最重要的是,这有助于你得到更具体、更相关的答案。您想更改表,还是想创建表的冗余副本?我想创建一个新表。太棒了!非常感谢。
SELECT store, Sum(CASE WHEN product='shirt' THEN quantity ELSE 0 END) AS shirts,
    Sum(CASE WHEN product='hat' THEN quantity ELSE 0 END) AS hats
FROM YourTable
GROUP BY store