首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >sql表行列转换

问sql表行列转换
EN

Stack Overflow用户
提问于 2013-08-28 09:41:15
回答 1查看 408关注 0票数 0

我有下表:

​

​

如何将上表转换成下面的结构?我试着用枢轴表,但没能让它工作。

​

​

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-08-28 09:43:55

您需要查找SQL枢轴。

检查这把小提琴

守则如下:

代码语言:javascript
复制
SELECT    * 
FROM 
(
    SELECT    Prodname, 
              pcode, 
              Biiledamt
    FROM      Product
) p
PIVOT 
(
    SUM    (Biiledamt)
    FOR    Prodname IN ([Prod1],[Prod2],[Prod3],[Prod4])
)   AS pvt

如果事先不知道列,则可以使用检查一下这把小提琴动态生成要使用的列。

这方面的代码是:

代码语言:javascript
复制
DECLARE @cols AS VARCHAR(MAX),
        @query AS VARCHAR(MAX)

SET @cols = STUFF((SELECT distinct ',[' + Prodname +']'
            FROM Product c
            FOR XML PATH(''), TYPE
            ).value('.', 'VARCHAR(MAX)') 
        ,1,1,'')


SET @query = 
'    SELECT    * 
    FROM 
    (
        SELECT    Prodname, 
                  pcode, 
                  Biiledamt
        FROM      Product
    ) p
    PIVOT 
    (
        SUM    (Biiledamt)
        FOR    Prodname IN (' + @cols + ')
    )   AS pvt
'


EXEC(@query)
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18484401

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档