以下是示例数据。我需要在不使用循环的情况下在t sql中复制此数据的3个副本,并将其作为一个结果集返回。这是不真实的示例数据。
42 South Yorkshire
43 Lancashire
44 Norfolk
编辑:我需要多份副本,我事先不知道我需要多少份副本,我必须根据日期决定。日期可能是1月1日至1月3日或1月1日至1月8日。
谢谢。
最佳答案
不知道更好,但这无疑更具创造力!您可以使用CROSS JOIN。
编辑:输入一些代码来生成日期范围,您可以更改日期范围,#date中的行是您的乘数。
declare @startdate datetime
, @enddate datetime
create table #data1 ([id] int , [name] nvarchar(100))
create table #dates ([date] datetime)
INSERT #data1 SELECT 42, 'South Yorkshire'
INSERT #data1 SELECT 43, 'Lancashire'
INSERT #data1 SELECT 44, 'Norfolk'
set @startdate = '1Jan2010'
set @enddate = '3Jan2010'
WHILE (@startdate <= @enddate)
BEGIN
INSERT #dates SELECT @startdate
set @startdate=@startdate+1
END
SELECT [id] , [name] from #data1 cross join #dates
drop table #data1
drop table #dates
关于sql - 在SQL中需要一个结果集的多个副本而不使用循环,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2334042/