sql - 透视字符串 SQL
问题描述
我正在尝试透视这个名为#salida 的表
IDJOB NAME DATE
1 Michael NULL
1 Aaron NULl
我想要得到的结果是
IDJOB DATE NAME1 NAME2
1 NULL Michael Aaron
我的代码是这个
SELECT *
FROM #salida
PIVOT
(
MAX([Name]) FOR [Name] IN ([Name1],[Name2])
) PVT GROUP BY IdJob,Date,Name1,Name2 ;
SELECT * FROM #salida
得到的结果是
IDJOB DATE NAME1 NAME2
1 NULL NULL NULL
解决方案
@XabiIparra,看一个模型。您需要按 IdJob 进行分区,然后添加所需的列。
DECLARE @salida TABLE(idjob VARCHAR(100),[Name] VARCHAR(100),[DATE] DATE);
INSERT INTO @salida VALUES
(1,'Michael', NULL)
,(1,'Aaron', NULL)
,(2,'Banabas', NULL)
SELECT p.*
FROM
(
SELECT *
,'NAME'+CAST(ROW_NUMBER() OVER(PARTITION BY [idjob] ORDER BY NAME) AS varchar(100)) ColumnName
FROM @salida
)t
PIVOT
(
MAX([Name]) FOR ColumnName IN (NAME1,NAME2,NAME3,NAME4,NAME5 /*add as many as you need*/)
)p;
推荐阅读
- autofac - PropertiesAutowired 不适用于 Autofac 中的 RegisterGeneric
- amazon-web-services - 我可以使用 AWS 命名配置文件而不将它们放在凭证文件中吗?
- python - 无法导入依赖项 - 没有名为“numpy.core._multiarray_umath”的模块
- object - 对象不包含“文本”的定义,并且找不到接受“文本”类型的第一个参数的可访问扩展方法“文本”
- file - Ansible fetch 模块虽然存在但找不到文件
- javascript - 将数据从响应发送到 html
- android - 如何使用 mediaRecorder 流式传输 android 的内部音频+屏幕?
- ruby-on-rails - 如何在规范中描述 rswagger 标头
- css - 有没有其他人遇到过 CSS Grid 和奇数像素变暗单元格的故障?试图修复
- linux - Linux:将文件夹中的文件重命名为序号