подстановочный знак в имени столбца в выбранной проекции - PullRequest
0 голосов
/ 30 мая 2018

У меня есть две таблицы, подобные этой:

Table1 : xA, yA, zA, xB, yB, zB
Table2 : x1, y1, z1, x2, y2, z2

Я хочу вставить данные от Table1 до Table2, такие как все данные *B столбцов идут в *1 столбцы соответственно и все *A с *1 с таким же образом.

Я пробовал этот запрос:

INSERT INTO Table2 SELECT xB, yB, zB, xA, yA, zA FROM Table1

, но с учетом удобства обслуживания, есть ли какое-либо другое решение без явного использования имени столбцов?Предположим, мне нужно добавить новые столбцы w1, w2, wA, wB.В этом случае я должен изменить запрос.

Ответы [ 2 ]

0 голосов
/ 30 мая 2018

Поскольку у вас есть порядок столбцов Таблицы1, сопоставляемый с другим порядком столбцов Таблицы2.Я бы предложил вам создать таблицу сопоставления Table1Table2Mapping.

+--------------+ --------------+
| Table1Column | Table2Column  | 
+--------------+ --------------+
|x1            | xB            |
|y1            | yB            |
|z1            | zB            |
|x2            | xA            |
|y2            | yA            |
|z2            | zA            |
+--------------+----------------+

Генерация динамического SQL путем запроса этих двух столбцов.

0 голосов
/ 30 мая 2018

Единственный способ сделать то, что вы хотите, использует динамический SQL.Я не уверен, что это удобнее в обслуживании.

Однако, в интересах удобства обслуживания, вы должны перечислить все столбцы явно:

INSERT INTO Table2 (x1, y1, z1, x2, y2, z2)
     SELECT xB, yB, zB, xA, yA, zA
     FROM Table1;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...