在SQL Server / Tableau中取消透视以将列转换为行

时间:2018-04-03 16:15:04

标签: sql-server pivot tableau unpivot

我有一个调查数据,其中的问题是列名是[Question1],[Question2],[Question3],响应是行值。

ResponseID是唯一的,每个表有一行。我想将数据展开,我有多个响应ID,问题和响应记录在不同的列中。我尝试了以下查询,但问题名称不是出现在数据集中。感谢支持。谢谢你

         SELECT [Response Id],[Date Created], Question
     FROM(
                  SELECT [Response Id], [Date Created],[Question1], 
                            [Question2],  [Question3]
           FROM dbo.surveys) AS cp UNPIVOT (Question FOR Questions IN (,[Question1],[Question2],[Question3]
            ) AS up;

可以直接在画面中处理吗?

1 个答案:

答案 0 :(得分:1)

是的,这是可能的,虽然我不是100%确定您需要将两种方法中的哪一种用作Sql Server作为数据源。尝试第一种方法,如果不起作用,请进一步查看下面的第二种方法。来自https://onlinehelp.tableau.com/current/pro/desktop/en-us/pivot.html的Tableau帮助:

  
      
  1. 在数据源页面的网格中,选择两个或多个要转动的字段。
  2.   
  3. 单击字段名称旁边的下拉箭头,然后选择“数据透视表”。
  4.         

    数据源中的原始字段将替换为新字段   称为“Pivot字段名称”和“Pivot字段值”。您可以随时使用   重命名新的透视字段。如果您决定使用pivot不   帮助,您可以撤消更改或删除枢轴。或者,你   可以更改数据透视表字段的数据类型以调整数据的方式   解释

如果这不起作用,帮助文档包含使用自定义sql完成任务的说明。