Sql server 2008 如何在SQL Server中为此记录输入编写转置?

Sql server 2008 如何在SQL Server中为此记录输入编写转置?,sql-server-2008,Sql Server 2008,输出应用于将问题转换为列,每个列中都有选项,如: 331 QUIZ0000000062 919652503596 2017-07-10 18:54:33.217 NULL NULL Falciform ligament A 332 QUIZ0000000062 919652503596 2017-07-10 18:54:33.217 NULL NULL Coronary ligament B 333 QUIZ0000000062 919652503

输出应用于将问题转换为列,每个列中都有选项,如:

331 QUIZ0000000062  919652503596    2017-07-10 18:54:33.217 NULL    NULL    Falciform ligament  A
332 QUIZ0000000062  919652503596    2017-07-10 18:54:33.217 NULL    NULL    Coronary ligament   B
333 QUIZ0000000062  919652503596    2017-07-10 18:54:33.217 NULL    NULL    Mesentery of the lesser sac C
334 QUIZ0000000062  919652503596    2017-07-10 18:54:33.217 NULL    NULL    Ligamentum teres    D

如果我正确理解了你的问题,你可以通过做一些
自连接来完成你想要的

QuestionCode      A                     B                         C          
-------------------------------------------------------------------------------
QUIZ0000000062  Falciform ligament Coronary ligament Mesentery of the lesser sac 

       D
----------------
Ligamentum teres
结果:

CREATE TABLE #aa(
    ID INT,
    QuestionCode NVARCHAR(100),
    SomeNumber BIGINT,
    DateColumn DATETIME,
    NullColumn1 INT,
    NullColumn2 INT,
    Answer varchar (100),
    AnswerLetter char
)  

INSERT #aa (ID,QuestionCode,SomeNumber,DateColumn,Answer,AnswerLetter)    
VALUES      
    (331,'QUIZ0000000062',919652503596,'2017-07-10 18:54:33.217','Falciform ligament','A'),
    (332,'QUIZ0000000062',919652503596,'2017-07-10 18:54:33.217','Coronary ligament','B'),
    (333,'QUIZ0000000062',919652503596,'2017-07-10 18:54:33.217','Mesentery of the lesser sac','C'),
    (334,'QUIZ0000000062',919652503596,'2017-07-10 18:54:33.217','Ligamentum teres','D')

SELECT q.QuestionCode,a.Answer 'A',b.Answer 'B',c.Answer 'C',d.Answer 'D'
FROM #aa q
    JOIN #aa a ON q.AnswerLetter = a.AnswerLetter AND a.AnswerLetter = 'A'
    JOIN #aa b ON q.AnswerLetter = a.AnswerLetter AND b.AnswerLetter = 'B'
    JOIN #aa c ON q.AnswerLetter = a.AnswerLetter AND c.AnswerLetter = 'C'
    JOIN #aa d ON q.AnswerLetter = a.AnswerLetter AND d.AnswerLetter = 'D'

DROP TABLE #aa

总有四个选择(A到D),或者你会有一些更复杂的问题。。。说一个有更多选项的匹配问题。
+---------------+--------------------+-------------------+-----------------------------+------------------+
| QuestionCode  |       A            |     B             |           C                 |        D         |
+---------------+--------------------+-------------------+-----------------------------+------------------+
|QUIZ0000000062 | Falciform ligament | Coronary ligament | Mesentery of the lesser sac | Ligamentum teres |
+---------------+--------------------+-------------------+-----------------------------+------------------+