Скопируйте и вставьте строки в одну таблицу SQL с разными значениями - PullRequest
12 голосов
/ 12 марта 2012

Я написал заявление на проживание в колледже. В одной из таблиц (комнат) у меня есть список всех комнат и их текущая / максимальная вместимость. Теперь я добавил новый столбец с именем «семестр» и установил для всех существующих строк значение семестра «падение». Теперь я хочу скопировать и вставить все эти строки в таблицу, но изменить значение семестра на «весна». Результат должен быть вдвое больше строк, чем я начал - половина с падением значения семестра и половина с падением. Хотите знать, что лучший способ сделать это?

Ответы [ 4 ]

22 голосов
/ 12 марта 2012
INSERT INTO rooms
(roomname, current_occupancy, max_occupancy, semester)
SELECT roomname, current_occupancy, max_occupancy,'spring'
FROM rooms
WHERE [semester]='fall'

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

5 голосов
/ 12 марта 2012

Используйте временную таблицу, чтобы упростить ее независимо от количества столбцов;

SELECT * INTO #ROOMS FROM ROOMS;
UPDATE #ROOMS SET SEMESTER='spring';
INSERT INTO ROOMS SELECT * FROM #ROOMS;
4 голосов
/ 12 марта 2012
Insert Into Rooms
     Select col1, col2, col3, 'Spring' as Semester -- select each column in order except 'Semester', pass it in literally as 'Spring'
     From rooms where
     Semester = 'Fall'
1 голос
/ 12 марта 2012

Что ж, если вы просто пытаетесь сделать это в Sql Server Management Studio, вы можете скопировать таблицу, выполнить команду обновления и настроить семестр на клонированную таблицу, а затем использовать мастер для добавления данных из клонированного таблица к существующей таблице.

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

Примечание: другие ответы являются гораздо лучшим способом достижения этого.

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