【发布时间】:2020-12-10 18:48:13
【问题描述】:
我需要使用 pivot 显示所有 varchar 值,但我不确定这是否可能?
我有OCCUPATIONS 表:
-----------+------------+
| NAME | OCCUPATION |
+-----------+------------+
| Eve | Actor |
| Jennifer | Actor |
| Ketty | Actor |
| Samantha | Actor |
| Aamina | Doctor |
| Julia | Doctor |
| Priya | Doctor |
| Ashley | Professor |
| Belvet | Professor |
| Britney | Professor |
| Maria | Professor |
| Meera | Professor |
| Naomi | Professor |
| Priyanka | Professor |
| Christeen | Singer |
| Jane | Singer |
| Jenny | Singer |
| Kristeen | Singer |
+-----------+------------+
透视查询:
select NAME, OCCUPATION from OCCUPATIONS
) t
PIVOT( MAX(NAME) FOR OCCUPATION IN ([Doctor], [Professor], [Singer], [Actor])
) as PIVOT_TABLE;
查询结果:
+--------+-----------+----------+----------+
| Doctor | Professor | Singer | Actor |
+--------+-----------+----------+----------+
| Priya | Priyanka | Kristeen | Samantha |
+--------+-----------+----------+----------+
以上查询在每列中仅提供 1 条记录,但我想获取所有记录。
【问题讨论】:
-
不要发布数据图片,我们不能消费它。花点时间以可消耗的格式发布它,最好是 DDL 和 DML 语句,但是,如果不是,则以表格格式
text发布。请不要指望这里的用户会为您转录您的数据。另外,您对此的预期结果是什么? -
此外,该查询似乎不完整。第 2 行的
t之前有一个右括号 ()),但是没有左括号 (()。 -
“我想得到所有” - 这是什么意思?你的意思是你仍然想得到 4 个单元格,但是所有的名字,用逗号分隔,或者别的什么?请同时包含所需的输出
-
旁注:一年多来,SQL Server 2008 完全不受支持,您应该认真考虑完成升级路径。
标签: sql sql-server sql-server-2008 pivot