Tsql объединить столбцы в одну таблицу - PullRequest
1 голос
/ 30 марта 2012

Как объединить столбцы в одну таблицу?

declare @map_old table(ID int not null) 
insert into @map_old select 1
insert into @map_old select 2

declare @map_new table(ID int not null) 
insert into @map_new select 11
insert into @map_new select 22

declare @map(ID int not null, ID2 int not null)

результат в @map должен быть:

ID   ID2
1    11
2    22

Есть предложения? Thx!

Ответы [ 2 ]

1 голос
/ 30 марта 2012

Если вы уверены, что в этих таблицах будет одинаковое количество строк.

Тогда может быть что-то вроде этого:

;WITH CTE
AS
(
    SELECT
        ROW_NUMBER() OVER(ORDER BY ID) AS RowNbr,
        mapNew.ID
    FROM
        @map_new AS mapNew
),CTE2
AS
(
    SELECT
        ROW_NUMBER() OVER(ORDER BY ID) AS RowNbr,
        mapOld.ID
    FROM
        @map_old AS mapOld
)
INSERT INTO @map(ID,ID2)
SELECT
    CTE.ID,
    CTE2.ID
FROM
    CTE
    JOIN CTE2
        ON CTE.RowNbr=CTE2.RowNbr

SELECT * FROM @map
1 голос
/ 30 марта 2012

Вы можете использовать идентичность в таблицах следующим образом:

declare @map_old table(iden int identity,ID int not null) 
insert into @map_old select 1
insert into @map_old select 2

declare @map_new table(iden int identity,ID int not null) 
insert into @map_new select 11
insert into @map_new select 22

declare @map table(ID int not null, ID2 int not null)

insert into @map
select t.ID, t2.ID from @map_old t join @map_new t2 on  t.iden = t2.iden
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...