Я хочу создать серию данных в SQL - PullRequest
0 голосов
/ 01 июня 2018

Я хочу создать серию данных в SQL для целей тестирования.

Пример.

Product1
Product2
Product3
.
.
.
Product1000

Я хочу создать 1000 записей, как описано выше, в SQL.Кто-нибудь может предложить мне решение?

Спасибо

Ответы [ 5 ]

0 голосов
/ 01 июня 2018

CTE на основе набора может быстро генерировать тестовые данные.Еще лучше быть таблицей чисел (aka).

WITH 
     t10 AS (SELECT n FROM (VALUES(0),(0),(0),(0),(0),(0),(0),(0),(0),(0)) t(n))
    ,t1k AS (SELECT ROW_NUMBER() OVER (ORDER BY (SELECT 0)) AS num FROM t10 AS a CROSS JOIN t10 AS b)
SELECT 'Product' + CAST(num AS varchar(10))
FROM t1k;
0 голосов
/ 01 июня 2018

Просто еще один вариант с использованием специальной таблицы подсчета

Пример

Select Top 1000 Product=concat('Product',Row_Number() Over (Order By (Select NULL))) 
 From  master..spt_values n1

Возвращает

Product1
Product2
Product3
Product4
...
Product998
Product999
Product1000
0 голосов
/ 01 июня 2018

Вот, пожалуйста,

DECLARE @temp TABLE(
    Products VARCHAR(15)
);

DECLARE @counter INT
SET @counter = 1
WHILE (@counter <= 1000)
BEGIN
INSERT INTO @temp
VALUES('Product'+CONVERT(VARCHAR(5),@counter));
SET @counter = @counter + 1
END
SELECT * FROM @temp;
0 голосов
/ 01 июня 2018

Это должно помочь вам начать.

DECLARE @table table (Product varchar(200))

DECLARE @cnt INT; SET @cnt = 0
WHILE @cnt <=10
BEGIN
SET @cnt = @cnt + 1
insert into @table
SELECT 'Product' +CAST(@cnt as varchar(150))

END

select * from @table
0 голосов
/ 01 июня 2018

Это можно сделать способом recursive, если вы работаете с SQL Server:

with series as (
       select 1 as id
       union all
       select id+1
       from series 
       where id < 1000
)
select concat('Product', id)
from series s
option (maxrecursion 1000);
...