在SQL中将临时表解析为另一个,保留列名

时间:2012-02-23 11:37:46

标签: sql sql-server temp-tables

我有一个看起来像这样的临时表。

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

第一行是列名,第二行是第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 个答案:

答案 0 :(得分:1)

您可以使用UNPIVOT

获得所需的结果
SELECT USER_NO As CusRef,
       CodeName,
       CodeValue     
FROM #YourTempTable
UNPIVOT (CodeValue FOR CodeName IN (MY_CODE1, MY_CODE2)) AS U