0

我想做一个查询来返回这样的东西

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

当我完成Table2中的记录后,我重新开始,直到完成Table1中的记录谢谢!

4

1 回答 1

0

尝试使用此查询,这非常有效(这是您尝试的链接)

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

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

于 2013-07-04T16:44:52.253 回答