当前位置:  开发笔记 > 编程语言 > 正文

SQL Server 2005,将列转换为行

如何解决《SQLServer2005,将列转换为行》经验,为你挑选了1个好方法。

我试图将一个表转90度:使列行.由于PIVOT需要聚合函数,因此不允许PIVOT.

示例:我有一个包含列的表:
ID int,
ISO char(2),
Text varchar(255).

所以我有这个:

ID ISO Text
-- --- ----
 1 DE  Auto
 2 EN  Car

我想得到以下内容:

ID EN  DE
-- --- ----
 1 Car Auto

你是如何实现这一目标的?



1> casperOne..:

这个答案真的是frantisek的,我只是在这里复制以纠正错误(我无法直接编辑).

基本上,您使用该解决方案,并进行调整:

SELECT 
    max(DE) as DE, max(EN) as EN 
FROM 
    test 
PIVOT (MAX([text]) FOR ISO in (DE,EN)) p

这将使内容成为一行.此外,它会删除ID,因为如果您想要一行(在组合成单行时没有逻辑来指示如何处理它),这是没有意义的.

此外,假设ISO列中的值是唯一的,否则,由于MAX聚合,这将丢失数据.

推荐阅读
360691894_8a5c48
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有