我想做一个查询以返回类似这样的内容
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中的记录 谢谢!
答案 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
这个查询我不喜欢它,但我不能再做另一个:(