Вставьте значения в таблицу из диапазона - PullRequest
0 голосов
/ 16 мая 2018

Я пытаюсь сделать вставку в таблицу (скажем, table1), где я хочу вставить диапазон чисел после добавления объявления char или int?

ex.для диапазона 1-10

abc1,
abc2,
abc3,
abc4,
.
.
.

есть идеи?

Ответы [ 3 ]

0 голосов
/ 16 мая 2018
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

0 голосов
/ 16 мая 2018

Решение Гордона Линоффа прекрасно работает! Только сделал одну незначительную модификацию. Для тех, кто ищет будущее решение.

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 - моя тестовая таблица. введите описание изображения здесь

0 голосов
/ 16 мая 2018

Мне нравятся рекурсивные 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.Кроме того, любая таблица чисел может служить той же цели.

...