这应该适用于任何数量的行,假定您要按显示的列中的值进行配对
With
TableA_CTE AS
(
SELECT TOP 1 colA as myCol1,Row_Number() OVER (ORDER BY ColA DESC) AS RowOrder
FROM tableA
),TableB_CTE AS
(
SELECT TOP 1 colB as myCol2,Row_Number() OVER (ORDER BY ColB DESC) AS RowOrder
FROM tableB
)
SELECT A.myCol1,B.MyCol2
FROM TableA_CTE AS A
INNER JOIN TableB_CTE AS B
ON A.RowOrder = B.RowOrder
,
目前存在两个问题,答案是:
I)行前缺少逗号:“表B为”
II)TSQL似乎发现它是递归的,所以我以一种非递归的方式重写了它:
这是对在T-SQL中实际可用的答案的重新设计:
USE [Database_1];
With
CTE_A AS
(
SELECT TOP 1 [Col1] as myCol1,Row_Number() OVER (ORDER BY [Col2] desc) AS RowOrder
FROM [TableA]
),CTE_B AS
(
SELECT TOP 1 [Col2] as myCol2,Row_Number() OVER (ORDER BY [Col2] desc) AS RowOrder
FROM [TableB]
)
SELECT A.myCol1,B.myCol2
FROM CTE_A AS A
INNER JOIN CTE_B AS B
ON ( A.RowOrder = B.RowOrder)
本文链接:https://www.f2er.com/3136076.html