Есть ли способ вставить одни и те же данные в несколько столбцов SQL?
Допустим, мы хотели поместить одни и те же данные в несколько строк следующим образом.
Имена столбцов для этого примера:
Monday, Tuesday, Wednesday, Thursday, Friday
INSERT INTO sample
VALUES ('long string')
Это пример того, что я имею в виду, поэтому одно и то же значение в каждом столбце
Monday | Tuesday | Wednesday | Thursday | Friday
long string | long string | long string | long string | long string
Я хочу эту длинную строку во всех столбцах, есть ли способ сделать это без использования нескольких операторов вставки? ИЛИ есть ли способ создать CTE, который может автоматизировать это, чтобы упростить его?
3 ответа
Вы должны перечислить все значения:
insert into sample (Monday, Tuesday, Wednesday, Thursday, Friday)
values ('long string', 'long string', 'long string', 'long string', 'long string');
Вы не указываете базу данных, но вы можете использовать подзапрос, чтобы уменьшить размер запроса:
insert into sample (Monday, Tuesday, Wednesday, Thursday, Friday)
select val, val, val, val, val
from (select 'long string' as val) x;
Вы можете расширить пример Гордона следующим образом:
DECLARE @valuesToInsert TABLE (val NVARCHAR(MAX))
INSERT INTO @valuesToInsert
VALUES
('This is a long sentence'),
('This is another long sentence'),
('This is yet another long sentence')
INSERT INTO sample (Monday, Tuesday, Wednesday, Thursday, Friday)
SELECT val, val, val, val, val
FROM @valuesToInsert
@valuesToInsert
ваш источник данных, который вы хотите использовать (я создал переменную таблицы только для отображения нескольких строк данных
Пытаться
вставьте в выборку (понедельник, вторник, среда, четверг, пятница) значения выберите "длинная строка"