我有一个表的格式如下Sql Server的转动命令基于文本给空细胞
╔════════╦══════════════╦════════╦════════════╦══════════╦════════╦══════════╦══════════╗
║ Answer ║ QuestionText ║ type ║ QuestionID ║ ResultID ║ Action ║ Username ║ SurveyID ║
╠════════╬══════════════╬════════╬════════════╬══════════╬════════╬══════════╬══════════╣
║ FN 1 ║ First Name ║ text ║ 3467 ║ 2259 ║ 2259 ║ admin ║ 308 ║
║ LN 1 ║ Last Name ║ text ║ 3468 ║ 2259 ║ 2259 ║ admin ║ 308 ║
║ Male ║ Gender ║ radio ║ 3466 ║ 2259 ║ 2259 ║ admin ║ 308 ║
║ 12 ║ Age ║ number ║ 3469 ║ 2259 ║ 2259 ║ admin ║ 308 ║
║ FN 2 ║ First Name ║ text ║ 3467 ║ 2260 ║ 2260 ║ admin ║ 308 ║
║ LN 2 ║ Last Name ║ text ║ 3468 ║ 2260 ║ 2260 ║ admin ║ 308 ║
║ Female ║ Gender ║ radio ║ 3466 ║ 2260 ║ 2260 ║ admin ║ 308 ║
║ 12 ║ Age ║ number ║ 3469 ║ 2260 ║ 2260 ║ admin ║ 308 ║
╚════════╩══════════════╩════════╩════════════╩══════════╩════════╩══════════╩══════════╝
我使用下面的支点查询它试图支点。
SELECT [ResultID],[Username],[Action],[First Name],[Last Name],[Gender],[Age] from
(
select *
from #myTab
) as y
pivot
(
max(Answer)
for QuestionText in ([First Name],[Last Name],[Gender],[Age])
) as p
但我得到下表为支点结果
╔══════════╦══════════╦════════╦════════════╦═══════════╦════════╦══════╗
║ ResultID ║ Username ║ Action ║ First Name ║ Last Name ║ Gender ║ Age ║
╠══════════╬══════════╬════════╬════════════╬═══════════╬════════╬══════╣
║ 2259 ║ admin ║ 2259 ║ NULL ║ NULL ║ NULL ║ 12 ║
║ 2260 ║ admin ║ 2260 ║ NULL ║ NULL ║ NULL ║ 12 ║
║ 2259 ║ admin ║ 2259 ║ NULL ║ NULL ║ Male ║ NULL ║
║ 2260 ║ admin ║ 2260 ║ NULL ║ NULL ║ Female ║ NULL ║
║ 2259 ║ admin ║ 2259 ║ FN 1 ║ NULL ║ NULL ║ NULL ║
║ 2260 ║ admin ║ 2260 ║ FN 2 ║ NULL ║ NULL ║ NULL ║
║ 2259 ║ admin ║ 2259 ║ NULL ║ LN 1 ║ NULL ║ NULL ║
║ 2260 ║ admin ║ 2260 ║ NULL ║ LN 2 ║ NULL ║ NULL ║
╚══════════╩══════════╩════════╩════════════╩═══════════╩════════╩══════╝
我不知道为什么我收到所有这些NULL
值。这将是一个很大的帮助,如果有人能告诉我这是为什么发生的,而正确的方式来获得以下支点输出:
╔══════════╦══════════╦════════╦════════════╦═══════════╦════════╦══════╗
║ ResultID ║ Username ║ Action ║ First Name ║ Last Name ║ Gender ║ Age ║
╠══════════╬══════════╬════════╬════════════╬═══════════╬════════╬══════╣
║ 2259 ║ admin ║ 2259 ║ FN 1 ║ LN 1 ║ Male ║ 12 ║
║ 2260 ║ admin ║ 2260 ║ FN 2 ║ LN 2 ║ Female ║ 12 ║
╚══════════╩══════════╩════════╩════════════╩═══════════╩════════╩══════╝
唉唉,ASCII表...:d –
您需要选择只有你的子查询所需的列。我更喜欢条件聚合到'pivot'语法。 –