选择表格的前1位

时间:2017-06-28 23:18:31

标签: sql sql-server join left-join outer-join

尝试选择外部联接表的顶级记录

如果表B中没有记录,则null将存在

如果有多条记录,那么只应选择第一条记录。

我构建了这个查询,但是我收到了错误

 SELECT DISTINCT
        A.Col1 , A.Col2, B.Col2, B.Col3
 FROM   
        A LEFT OUTER JOIN (SELECT TOP 1 * FROM B WHERE B.Col1=A.Col1) A ON B.Col1=A.Col1

无法绑定多部分标识符“B.Col1”。

任何人都知道如何解决这个问题?

1 个答案:

答案 0 :(得分:2)

如果您只想要一个匹配,请使用outer apply

SELECT A.Col1 , A.Col2, B.Col2, B.Col3
FROM A OUTER APPLY
    (SELECT TOP 1 *
     FROM B
     WHERE B.Col1 = A.Col1
    ) B;