#sql #select
#sql #выберите
Вопрос:
У меня есть следующие столбцы и пример строки:
ID COL1 COL2 COL3 COL4
1 dat1 dat2 dat3 dat4
Я хочу выполнить запрос, который оставит меня с этим:
ID COL1 COL2 COL3 COL4
1 dat1 dat2 dat3 dat4
2 dat2 dat1 dat3 dat4
Я экспериментировал, но пока не смог добиться этого, моя последняя попытка:
INSERT INTO TABLE1(COL1, COL2)
SELECT COL2, COL1 DAT3 DAT4 FROM TABLE1
Любые советы или подсказки очень ценятся.
Комментарии:
1.
INSERT INTO TABLE1(COL1, COL2, COL3, COL4) SELECT COL2, COL1, 'dat3', 'dat4' FROM TABLE1
Ответ №1:
Я думаю, вам следует использовать весь столбец в insert, и вы можете получить значение для selecct
INSERT INTO TABLE1 (COL1, COL2, COL3, COL4)
SELECT COL2, COL1, COL3, COL4 FROM TABLE1;
для добавления новых значений вы можете
INSERT INTO TABLE1 (COL1, COL2, COL3, COL4)
SELECT COL2, COL1, 'new_value_for_col3', 'new_value_for_col4' FROM TABLE1;
Комментарии:
1. Большое вам спасибо, это выглядит именно так, как я ищу! Мне любопытно, как бы это работало, если бы я хотел это сделать, но также помещал новые данные в COL3 и COL4, я бы сделал это: COL1, COL2, ‘new3’, ‘new4’?
2. @deucalion0 да .. правильно, если вам нужно, чтобы один или несколько столбцов имели новое значение, вы должны установить соответствующую позицию с нужным вам значением..
3. Не могли бы вы обновить свой ответ, чтобы показать мне правильный синтаксис? Я не могу заставить это работать, я пробовал это: ВСТАВИТЬ В ТАБЛИЦУ1(COL1, COL2, COL3, COL4) ВЫБЕРИТЕ COL2, COL1 из TABLE1, ‘new3’, ‘new4’
4. Я обновил ответ .. (предположим, что col3 и col4 являются строковыми
5. Отлично, большое вам спасибо, это идеально и решило мою проблему.