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 |
+---------------+--------------------+-------------------+-----------------------------+------------------+