2012-03-26 2 views

ответ

31
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' 
+0

Могу ли я использовать подстановочные знаки? – Agzam

+2

Ther не является обстоятельством, в котором вы должны использовать подстановочные знаки во вставке. – HLGEM

+0

Как сделать то же самое, но с небольшой модификацией. Пример: я хочу вставить 'column2 val + test' вместо 'no', я хочу вставить значение из swlwcted строки с добавленным текстом. –

7
INSERT INTO table(column1,column2) SELECT column1, const2 FROM table ... 

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

+1

Просто для уточнения, сделать ваши изменения в части выбора части изложения. – TimothyAWiseman

+0

как именно ....? – Agzam

+0

Это зависит от ваших потребностей. Например. Предположим, что ваш первичный ключ представляет собой бессмысленное целое число с идентификатором имени столбца без какого-либо механизма выделения ключей (например, автоинкрементный столбец); предположим, что вы хотите скопировать значение столбца1 из записи с идентификатором, переданным как @source, и установить значение column2 в новое значение, переданное как @param. Затем выполните следующие два параметра: 'INSERT INTO t (id, column1, column2) SELECT m.id + 1, source.column1, @param FROM tm, t source WHERE source.id = @source AND m.id = (SELECT MAX (id) FROM t) ' –

1

Say столбец INT

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

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