次の構造の「テーブル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)
しかし、うまくいきません!
助けてください、どうもありがとう!