Я пытаюсь сделать вставку в таблицу (скажем, table1), где я хочу вставить диапазон чисел после добавления объявления char или int?
ex.для диапазона 1-10
abc1, abc2, abc3, abc4, . . .
есть идеи?
with nums as ( select 1 as n union all select n + 1 as n from nums where n <= 9 )
вставить в таблицу1 (столбец) выберите «abc» + cast (nums.n как varchar (255)) из чисел;
выберите * из таблицы1
Решение Гордона Линоффа прекрасно работает! Только сделал одну незначительную модификацию. Для тех, кто ищет будущее решение.
DECLARE @rangestart INT, @rangeend INT SET @rangestart = 1 SET @rangeend = 10 ; with nums as ( select @rangestart as n union all select n + 1 from nums where n < @rangeend ) insert into Table1(Colum) select 'abc' + cast(nums.n as varchar(255)) from nums;
В моей тестовой таблице столбец Artist - моя тестовая таблица. введите описание изображения здесь
Мне нравятся рекурсивные CTE для этой цели:
with nums as ( select @rangestart as n union all select n + 1 from nums where n < @rangeend ) insert into table1(col) select 'abc' + cast(nums.n as varchar(255)) from nums;
Если у вас более 100 номеров, вы должны использовать опцию MAXRECURSION.Кроме того, любая таблица чисел может служить той же цели.
MAXRECURSION