| ID(主键)|人类属性|属性值|
| - ------|- ------|- ------|
| 1个|姓名|约翰|
| 1个|国家|美国|
我想把一列变成一行
像这样:
| ID(主键)|姓名|国家|
| - ------|- ------|- ------|
| 1个|约翰|美国|
SELECT ID, (*pink*) [Name], [Country]
FROM
(SELECT ID, HumanAttribut as Ahuman, attributValue
FROM tableA
WHERE ID = 1
AND HumanAttribut IN ('Name', 'Country')) as SourceTabele
PIVOT
(Max(attributeValue)
For
Ahuman in ([Name], [Country])
) as PIVOT_TABLE
我得到了缺少表达式的错误。Oracle用粉红色显示有错误。
pink error
如果有人已经发布了类似这样的东西,与名称或国家等简单的价值观,然后请链接到我。
提前感谢您的帮助!
我跟随这个视频https://www.youtube.com/watch?v=uT_Z2VP2Z24,但我不知道为什么我的语法是错误的,我知道有些东西是通过错误消息丢失,但我不知道我忘记了什么...
2条答案
按热度按时间t1qtbnec1#
我猜,Oracle不喜欢HumanAttribut作为Ahuman,请尝试HumanAttribut Ahuman
您不仅可以使用PIVOT操作符,但其他方法(希望,这将有所帮助)
https://dbfiddle.uk/AKl-2nK7
68bkxrlz2#
下面是一些可以帮助您的示例
还可以使用UNPIVOT运算符将行转换为列。