2012-02-23 2 views
-3

У меня есть временная таблица, которая выглядит примерно так.Разбор временной таблицы в другую в SQL, сохраняя имена столбцов

| USER_NO | MY_CODE1  | MY_CODE2  | 
| UserNo1 | UserNo1_Code1 | UserNo1_Code2 | 
| UserNo2 | UserNo2_Code1 | UserNo2_Code2 | 

В тех случаях, когда первая строка представляет собой имена столбцов, значения 2 и 3 являются значениями. Мне нужно добавить эти записи в другую таблицу.

| CusRef | CodeName | CodeValue  | 
| UserNo1 | MY_CODE1 | UserNo1_Code1 | 
| UserNo2 | MY_CODE2 | UserNo1_Code2 | 
| UserNo2 | MY_CODE1 | UserNo2_Code1 | 
| UserNo2 | MY_CODE2 | UserNo2_Code2 | 

В этой другой таблице есть еще несколько полей, которые мне нужно ссылаться из другой таблицы, но это еще одна проблема.

Какой SQL я мог бы использовать, чтобы этот первый бит работал?

ответ

1

желаемые результаты могут быть получены с UNPIVOT

SELECT USER_NO As CusRef, 
     CodeName, 
     CodeValue  
FROM #YourTempTable 
UNPIVOT (CodeValue FOR CodeName IN (MY_CODE1, MY_CODE2)) AS U 
Смежные вопросы