SQL从两个表按升序插入表中

shi*_*mbu 1 sql sql-server

我需要创建一个映射两个表值的表.没有可用于连接这些表的键,但保证这两个表中的行数保证相同,并且一个中的最低ID值映射到其他表中的最低值一直到最高值.两个表中的实际ID本身会有所不同

有没有办法在SQL Server中执行此操作.

谢谢

And*_*y M 6

在SQL Server 2005+中:

WITH Table1Ranked AS (
  SELECT
    ID,
    rn = ROW_NUMBER() OVER (ORDER BY ID)
  FROM Table1
),
Table2Ranked AS (
  SELECT
    ID,
    rn = ROW_NUMBER() OVER (ORDER BY ID)
  FROM Table2
)
INSERT INTO MapTable (Table1ID, Table2ID)
SELECT t1.ID, t2.ID
FROM Table1Ranked t1
  INNER JOIN Table2Ranked t2 ON t1.rn = t2.rn
Run Code Online (Sandbox Code Playgroud)