0

次のような 2 つのテーブルを取得します。

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)

次のような2つの列を返すクエリを作成したい:

data1   data2

    1       4
    2       5
    3       6

これに対する1つの解決策を見つけました:

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])

キーなしでテーブルを結合する他の方法 (クロス以外の結合) を知っていますか?

編集:cursorと なしで解決策を探します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 に答える