sql - 带有 varchar 数据类型的 SQL PIVOT 返回 null
问题描述
我正在尝试对 sql 表中的数据进行透视,以便每个记录 id 只得到一行。但是,我正在运行的代码不断返回空值作为我的最终结果。
我的表看起来像:
"Sequence" "University Issuing Body"**
"1" "College1"
"1" "College2"
"2" "College1"
"2" "College1"
"2" "College2"
我需要的表格如下所示:
"Sequence" "University Issuing Body1" "University Issuing Body2" "University Issuing Body3"
"1" "College1" "College2" "NULL"
"2" "College1" "College1" "College2"
我正在运行的代码如下:
select
Sequence]
,[University Issuing Body_1]
,[University Issuing Body_2]
,[University Issuing Body_3]
from (
select
[Sequence]
,[University Issuing Body]
,'University Issuing Body' + cast(row_number() over(partition by [Sequence] order by [University Issuing Body]) as varchar(12)) as hdg
from [AB_DCU_IP_2018].[dbo].[PR_Q_Joined]
) d
pivot(
max([University Issuing Body])
for hdg in ([University Issuing Body_1], [University Issuing Body_2], [University Issuing Body_3])
)pvt
但是,当我运行上面的代码时,我的所有值都显示为 null,我得到以下结果:
"Sequence" "University Issuing Body_1" "University Issuing Body_2" "University Issuing Body_3"
"1" "NULL" "NULL" "NULL"
"2" "NULL" "NULL" "NULL"
任何帮助都将不胜感激,因为我一直在网上寻找解决方案,但似乎无法找到我哪里出错了。
提前致谢。
解决方案
您正在使用 hdg 格式构建中间表University Issuing Body<n>
。但是您随后会提取 hdg 具有 format 的值University Issuing Body_<n>
。不出所料,这不匹配任何东西 - 所以你得到 NULL。
只需在 hdg 的构造中添加下划线:
select
[Sequence]
,[University Issuing Body_1]
,[University Issuing Body_2]
,[University Issuing Body_3]
from (
select
[Sequence]
,[University Issuing Body]
,'University Issuing Body_' + cast(row_number() over(partition by [Sequence] order by [University Issuing Body]) as varchar(12)) as hdg
from [AB_DCU_IP_2018].[dbo].[PR_Q_Joined]
) d
pivot(
max([University Issuing Body])
for hdg in ([University Issuing Body_1], [University Issuing Body_2], [University Issuing Body_3])
) pvt
推荐阅读
- html - 将图像放在平行四边形内,没有曲率
- javascript - 在 javascript 中使用二维数组并尝试从中读取值会给出“未捕获的类型错误:无法读取未定义的属性 '0'”
- ms-access - 我正在尝试在访问中运行查询。当我使用 IIF 函数设置参数时,它无法正常工作。它没有读取字符串
- loops - 如何循环通过 Makefile (GNU) 中的文本文件?
- python - 动态python函数和exec混淆
- carrot2 - carott2 是否有用于 JIRA 集成的适配器,用于可视化 JIRA 票据收集
- jquery - 在第一个 div 中的 2 个 div 之间包装内容,删除第二个
- javascript - 如何在 React 中删除列表项 - 控制台中不显示错误
- scala - Akka Streams - 流大表
- backend - 清晰设计编程