在两个表中加入记录

时间:2013-07-04 15:33:14

标签: sql-server

我想做一个查询以返回类似这样的内容

Table 1
Id1    Name
  1    A
  2    B
  3    C
  4    D
  5    E   

 Table 2
    Id2
    10
    11
    12

我需要转到table2并返回Table1中的每条记录,如下所示:

Id1 Name Id2
1    A   10
2    B   11
3    C   12
4    D   10
5    E   11

当我完成表2中的记录时,我再次开始,直到完成表1中的记录 谢谢!

1 个答案:

答案 0 :(得分:0)

尝试使用此查询,此功能完美无缺(此处为 link 供您试用)

WITH tempTable1 AS
(
    SELECT
        b.ID2,
        ROW_NUMBER() OVER (ORDER BY ID2) AS position1
    FROM
        TABLE2 b
)
SELECT x.ID1, x.NAME, isnull((SELECT b.id2 FROM tempTable1 b WHERE b.position1 = (x.position2 % (SELECT COUNT(1) FROM tempTable1))),
(SELECT TOP 1 y.id2 FROM tempTable1 y ORDER BY y.position1 desc)) AS ID2
FROM (
SELECT A.ID1, A.NAME, ROW_NUMBER() OVER (ORDER BY A.ID1) AS position2
FROM TABLE1 A
) X

这个查询我不喜欢它,但我不能再做另一个:(