这是一个非常奇怪的请求,几乎可以肯定是您在现实世界中的应用程序中永远不想做的事情,但是从纯粹的学术角度来看,这是一个有趣的挑战。使用SQL Server 2005,您可以使用公用表表达式和row_number()函数并在其上进行联接:with OrderedFoos as ( select row_number() over (order by FooName) RowNum, * from Foos (nolock)),OrderedBars as ( select row_number() over (order by BarName) RowNum, * from Bars (nolock))select * from OrderedFoos f full outer join OrderedBars u on u.RowNum = f.RowNum这行得通,但是它非常愚蠢,我只将其作为“社区Wiki”答案提供,因为我真的不建议这样做。