SQL INSERT на основе результатов SELECT

Простите меня, поскольку я относительно новичок в SQL. Но я пытаюсь использовать измененные данные из запроса SELECT в одной таблице и использовать его для заполнения данных в другую таблицу.

SELECT ID FROM TABLE WHERE VALUE=10

Я хочу вставить результирующий идентификатор в другую таблицу, но с изменениями, такими как:

1stString.ID.2ndString

Я нашел ответы на вопрос о том, как использовать ID из SELECT во вставке, но я не могу заставить его работать, когда пытаюсь конкатенатировать. Существуют и другие значения, которые я вставляю, но они являются литералами (я пытаюсь инициализировать параметры ключа по умолчанию для идентификатора, указанного в другой таблице.

Использование MS SQL Studio 2008, кстати.

Ответы

Ответ 1

INSERT INTO table (field)
SELECT '1stString.' + cast(id as varchar(50)) + '.2ndString' 
FROM table2 
WHERE id = 10

Изменить - ответ на комментарий: Вы на правильном пути, но вы хотите выбрать свои жестко закодированные строки из своей таблицы, например:

INSERT INTO table1 (field1, field2, field3)
SELECT '1stVal', '2ndVal', '1stString.' + cast(id as varchar(50)) + '.2ndString' 
FROM table2 
WHERE id = 10

Это также показано в ответе Дастина Лейна.

Ответ 2

INSERT table1
(
    f1, f2, f3, f4
)
SELECT f1, f2, f3, 'defaultval' as f4
FROM table2
WHERE value = 1