В настоящее время у меня есть таблица, которая выглядит примерно так:
Table_1
ID|NAME|INFO_CODE_1|INFO_CODE_2|INFO_CODE_3|INFO_CODE_4|INFO_TEXT|DESCRIPTION
1 |Test|123 |254 |556 |867 |Test Text|Test Description
Я пытаюсь вставить данные из Table_1 в Table_2, чтобы каждая запись из первой таблицыпревращается во четыре отдельные записи во второй таблице, например:
Table_2
ID|NAME|INFO_CODE|INFO_TEXT|DESCRIPTION
1 |Test|123 |Test Text|Test Description
1 |Test|254 |Test Text|Test Description
1 |Test|556 |Test Text|Test Description
1 |Test|867 |Test Text|Test Description
В Таблице_1 много тысяч записей, есть другие столбцы, данные которых нам не нужны,и значения от INFO_CODE_1 до INFO_CODE_4 все варьируются от записи к записи (и могут даже быть нулевыми).Я думал написать что-то вроде этого:
INSERT OVERWRITE TABLE example.TABLE_2
SELECT
A.ID AS ID,
A.NAME AS NAME,
A.INFO_CODE_1 AS INFO_CODE,
A.INFO_TEXT AS INFO_TEXT,
A.DESCRIPTION AS DESCRIPTION
FROM
example.TABLE_1 A
UNION ALL
SELECT
A.ID AS ID,
A.NAME AS NAME,
A.INFO_CODE_2 AS INFO_CODE,
A.INFO_TEXT AS INFO_TEXT,
A.DESCRIPTION AS DESCRIPTION
FROM
example.TABLE_1 A
UNION ALL
SELECT
A.ID AS ID,
A.NAME AS NAME,
A.INFO_CODE_3 AS INFO_CODE,
A.INFO_TEXT AS INFO_TEXT,
A.DESCRIPTION AS DESCRIPTION
FROM
example.TABLE_1 A
UNION ALL
SELECT
A.ID AS ID,
A.NAME AS NAME,
A.INFO_CODE_4 AS INFO_CODE,
A.INFO_TEXT AS INFO_TEXT,
A.DESCRIPTION AS DESCRIPTION
FROM
example.TABLE_1 A;
- Будет ли это работать?
- Если да, есть ли лучший способ написать утверждение?
- Есть ли способ гарантировать, что все записи с одинаковым идентификатором вставляются одна за другой?
Заранее благодарю всех за любую помощь, которую вы можете оказать.