2016-11-24 5 views
0

У меня есть две таблицы, как:тянуть данные из одного столбца в другой таблице

Table_1

Question01 Answer01 Question02 Answer02  QuestionN AnswerN 
------------------------------------------------------------------- 
Favourite  Red  Favourite  Chips  Favourite  Black Beatles 
Colour?    Food?     Song? 

Table_2

No.  
---------- 
Question01 
Question02 
... 
QuestionN 

И я хочу, чтобы получить результат, который выглядит например:

No.  | Questions 
---------- 
Question01 Favourite Colour? 
Question02 Favourite Food? 
... 
QuestionN Favourite Song? 

Мне нужна результирующая таблица, чтобы быть динамичной, поскольку количество вопросов может варьироваться.
Кто-нибудь знает, как я буду заниматься этим?

+1

У вас действительно есть что много колонок для вопросов и ответов? – jarlh

+0

Это могут быть любые числовые столбцы, потому что количество вопросов будет варьироваться. –

+3

Несомненно, вы бы просто сохранили таблицу 1 как «Вопрос» «Ответ» и получили множество вопросов с ответами. – BugFinder

ответ

0

Вы можете использовать динамический SQL и UNPIVOT для этого:


DECLARE @sql NVARCHAR(max) 
DECLARE @column_list NVARCHAR(max) = N'' 

SELECT @column_list += QUOTENAME(q) + ',' FROM Table_2 
SET @column_list = SUBSTRING(@column_list, 1, LEN(@column_list) -1) 

SET @sql = CONCAT(N' 
SELECT up.[No.], up.[Questions] FROM (
    SELECT 
     ',@column_list,N' 
    FROM Table_1 
) p 
UNPIVOT ([No.] FOR [Questions] IN (',@column_list,N')) AS up') 

PRINT @sql 

EXEC (@sql) 
 
+0

СПАСИБО ВАМ ТАК! –

Смежные вопросы