【发布时间】:2015-01-26 08:42:12
【问题描述】:
这是我第一次使用它,我希望我能做到这一点,我快疯了。我仍然是所有这些使用 SQL 编程的新手,我正在尝试使用数据透视表将源表转换为所需的输出,如下所示。
这是我的源表
这是图片,我无法上传 (https://i.stack.imgur.com/KDStF.jpg)。
但无论我尝试什么,它都会返回数字,但我想要的 varchar 值,如上所示。 有谁知道如何实现它?
我在 Sql Server 中使用 Transact SQL,这是我的代码
SELECT [Ques1], [Ques2]
FROM
(
SELECT
D.DocumentId,
DA.QuestionId,
Q.ShortText,
DA.[Text],
Q.SectionId,
1 as [Count]
-- ShortText is literally 'Ques1' or 'Ques2'
FROM Document D
INNER JOIN DocumentAnswer DA
ON DA.DocumentId = D.DocumentId
INNER JOIN Question Q
ON Q.QuestionId = DA.QuestionId
WHERE D.DeleteDate IS NULL
) d
PIVOT
(
Max(ShortText)
FOR [Text] IN ([Ques1], [Ques2])
) p
【问题讨论】:
标签: sql-server tsql pivot varchar