连接等长表没有公共键,第n行有第n行

时间:2015-04-24 14:54:34

标签: tsql join

看起来很简单,但我找不到一个好方法: 我必须有表,每个表都有一个包含数字的列。 我需要一个包含两列的表,第一列是第一个表的列,第二列是第二个表的列。 我希望第一行由两个起始列的第一行(单个单元格)的值组成。 这两个表没有主键,我无法添加主键,它们是函数的结果。

有没有聪明的方法来做到这一点?

我无法在sry周围找到同样的问题。

1 个答案:

答案 0 :(得分:1)

大多数人可能会使用某种类型的Windows函数,例如ROW_NUMBER(),但会在分配“主键”之前对您的值进行排序。试试这个:

CREATE TABLE #table1
(
    ID INT IDENTITY(1,1),
    Value INT
)

CREATE TABLE #table2
(
    ID INT IDENTITY(1,1),
    Value INT
)

INSERT INTO #table1(value)
    SELECT col1
    FROM #table1

INSERT INTO #table2(value)
    SELECT col1
    FROM #table2

SELECT  #table1.Value,
        #table2.Value
FROM #table1
INNER JOIN #table2
    ON #table1.ID = #table2.ID