SQL 中的 Pivot 语法错误,为啥我得到不正确的结果?
Posted
技术标签:
【中文标题】SQL 中的 Pivot 语法错误,为啥我得到不正确的结果?【英文标题】:Pivot Syntax Error in SQL , Why am I getting Incorrect results?SQL 中的 Pivot 语法错误,为什么我得到不正确的结果? 【发布时间】:2021-10-28 20:14:38 【问题描述】:请有人帮我理解这个 Pivot 语法有什么问题? 感谢@Ross Bush 修复了我的查询,但我没有得到想要的输出,我想要行中的 PersonFK 值,但是在执行下面的查询后,输出是这样的 -
这是原始表格-
RequisitionID(整数,非空) RoleCode(nvarchar(100),不为空) PersonFK (int, null)
SELECT RequisitionID,
1 AS One,
2 AS Two,
3 AS Three
FROM
(SELECT RequisitionID,
RoleCode,
PersonFK
FROM RequisitionHiringTeam
WHERE RoleCode IN (1,
2,
3)) as src
PIVOT (
max(PersonFK)
FOR RoleCode
IN ([1],[2],[3])
) as pvt
GO
【问题讨论】:
请用您正在使用的数据库引擎标记它。 请不要张贴images的代码和数据,没有人可以测试图像。 【参考方案1】:如果您使用像我这样的列别名,则需要将它们放在括号中 ->
SELECT
...[1] As One, [2] As Two..
FROM
(
<query>)as src
PIVOT(
...
FOR RoleCode IN
IN ([1],[2],[3])
)as pvt
【讨论】:
谢谢!解决了错误,但我没有得到所需的输出。【参考方案2】:我修复了我的查询,它给了我想要的结果 =
SELECT RequisitionID,
[1] AS One,
[2] AS Two,
[3] AS Three
FROM
(SELECT RequisitionID,
RoleCode,
PersonFK
FROM RequisitionHiringTeam
) src
PIVOT (
SUM(PersonFK)
FOR RoleCode
IN ([1],[2],[3])
)pvt
GO
我需要在第一个 select 语句中为列添加 [ ... ]。输出 =
【讨论】:
以上是关于SQL 中的 Pivot 语法错误,为啥我得到不正确的结果?的主要内容,如果未能解决你的问题,请参考以下文章
在关键字“pivot”附近出现语法错误,提示语法不正确。我在这里想念啥
SQL 中的 PIVOT 给出错误 - ORA-00933: SQL 命令未正确结束