0

2つのテーブルAとBがあるとします

表 A

name   |   age
----------------
jack   |  13
hanna  |   28

表 B

 id
-----
 1
 2

別のテーブルCに次を挿入したい

表 C

id   |  name  |  age
--------------------
1    |  jack  | 13
2    | hanna  | 28

私はこれをやっています

INSERT INTO C (id, name, age)
SELECT   b.id,  a.name,  a.age
FROM A a, B b

私が欲しいものを手に入れる代わりに、私はこれを手に入れます:

id   |  name  |  age
--------------------
1    |  jack  |  13
1    |  hanna |  28
2    |  jack  |  13
2    |  hanna |  28

どうすればこれを解決できますか?

4

2 に答える 2

2
declare @a table (name varchar(50),age int)
Declare @b table (id int)

insert into @a 
select 'jack',13
union select 'hanna',28

insert into @b
select 1
union select 2

Select id,name,age from
(
Select a.* ,ROW_Number() over (order by name) as rn
from @a a
)x
JOIN
(
Select b.* ,ROW_Number() over (order by ID) as rn
from @b b
)y
ON x.rn=y.rn
order by ID
于 2013-07-22T11:54:51.583 に答える
0

このクエリを記述して、テーブル c に目的の行を挿入することができます

insert into #c
select id, name, age from (
 ( select ROW_NUMBER() over (order by name) as Aid, name, age from #A ) ATest
inner join (select ROW_NUMBER() over (order by id) as Bid, id from #B) Btest on Aid = Bid
)
于 2013-07-22T12:08:15.453 に答える