我有一个具有以下结构的“表 A”:
Act_Code ACT_TYPE_1 ACT_TYPE_2 ACT_TYPE_3 ACT_TYPE_4
-------- -------- ----------- ---------- -----------
ACT1 A NULL NULL NULL
ACT2 NULL B NULL NULL
ACT3 NULL NULL C NULL
ACT4 NULL NULL NULL D
ACT1 A NULL NULL NULL
如您所见,ACT_TYPE 数据将始终存储在字段名称中,该字段名称指的是“Act_Code”字段的最后一位:例如。当 Act_Code = "ACT1" 时,Act_Type 存储在字段 "ACT_TYPE_1" 当 Act_Code = "ACT2" 时,Act_Type 存储在字段 "ACT_TYPE_2" 中,依此类推...
现在,我想从上面的“表 A”中读取数据并插入到具有以下结构的“表 B”中:
ACT ACT_TYPE
---- --------
1 A
2 B
3 C
4 D
问题: * 1. 如何在选择查询中添加“动态列名”?*
例如,
INSERT INTO Table_B (ACT, ACT_TYPE)
SELECT RIGHT(Act_Code,1), ## FROM Table_A
如何按照上面的符号“##”处理动态列名?
我试过了:
SET @sql = 'INSERT INTO Table_B (ACT,ACT_TYPE) '
SET @sql = @sql + 'SELECT RIGHT(Act_Code,1), '
SET @sql = @sql + '''ACT_TYPE_'' + RIGHT(Act_Code,1) FROM Table_A'
EXEC (@sql)
但它不起作用!
请帮忙,非常感谢!