0

我得到两个这样的表:

create table #table1 (data1 int)
create table #table2 (data2 int)

insert into #table1 (data1) values (1),(2),(3)
insert into #table2 (data2) values (4),(5),(6)

我想做一个查询,它返回两列,如下所示:

data1   data2

    1       4
    2       5
    3       6

我为此找到了一种解决方案:

select t1.data1, t2.data2 from 
 (select row_number() over (order by data1) as [Index], data1 from #table1) as t1 inner join 
 (select row_number() over (order by data2) as [Index], data2 from #table2) as t2 on (t1.[Index] = t2.[Index])

你知道没有键连接表的其他方法(除了交叉之外的任何连接)?

编辑:我寻找没有cursorand的解决方案temporary tables

4

2 回答 2

1
create table table1 (data1 int)
create table table2 (data2 int)
insert into table1 (data1) values (1),(2),(3)
insert into table2 (data2) values (4),(5),(6)

create table #table1 
(id int identity(1,1),
data1 int)

create table #table2 
(id int identity(1,1),
data2 int)

insert into #table1 (data1) select data1 from table1
insert into #table2 (data2) select data2 from table2

create table table3
(data1 int,
data2 int)

insert into table3 (data1, data2) 
select #table1.data1, #table2.data2 
from #table1
inner join #table2 on #table1.id = #table2.id
于 2013-07-03T13:16:59.513 回答
0

在这种情况下,如果我插入以下值将输出什么插入到#table1(data1)值(1),(2),(3)插入到#table2(data2)值(2),(3),(4)你可能需要

select t1.data1, t2.data2 from t1,t2 
于 2013-07-03T13:09:21.673 回答