Выберите, измените и вставьте в ту же таблицу - PullRequest
17 голосов
/ 27 марта 2012

Какой самый простой способ выбрать строку, изменить пару столбцов и вставить ее в одну таблицу? Я пытаюсь вставить новую строку на основе другой.

Ответы [ 3 ]

38 голосов
/ 27 марта 2012
INSERT INTO table2 (column1, column2, column3)
SELECT column1, 'no', column3 FROM table2 WHERE column2 = 'yes'

Надеюсь, это немного понятнее, как вы это делаете. Как вы можете видеть, я взял два столбца из таблицы 2, а для другого столбца вместо значения столбца 2 я использовал текстовое значение.

Другие шаблоны, которые вы можете использовать:

Объединить столбец и некоторый другой текст (Предполагается, что столбец уже является строковым типом данных.

INSERT INTO table2 (column1, column2)
SELECT column1 + 'no', column2 FROM table2 WHERE column2 = 'yes'

Объедините столбец и некоторый текст. Один пример, где столбец - строка, а другой - нет.

INSERT INTO table2 (column1, column2)
SELECT column1 + 'no', 'A' + cast(column2 as Varchar (10)) FROM table2 WHERE column2 = 'yes'
7 голосов
/ 27 марта 2012
INSERT INTO table(column1,column2) SELECT column1, const2 FROM table ...

Список выбора, вероятно, будет смешивать скопированные столбцы (по имени) и измененные столбцы (по желаемым значениям).

2 голосов
/ 27 марта 2012

Скажите, что столбец int

INSERT INTO table(column1,column2) SELECT column1 + 1, column2 -1 FROM table

Вы можете умножать столбцы и выполнять строковые функции.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...