SQL Server - 选择满足条件的第一行

2024-05-21

我有 2 个包含 ID 的表。其中一个表中会有重复的 ID,我只想为表 B 中的每个匹配 ID 返回一行。例如:

Table A

+-----------+-----------+
| objectIdA | objectIdB |
+-----------+-----------+
|         1 |         A | 
|         1 |         B | 
|         1 |         D | 
|         5 |         F | 
+-----------+-----------+

Table B

+-----------+
| objectIdA |
+-----------+
|         1 |
|         5 |
+-----------+

将返回:

+-----------+-----------+
| objectIdA | objectIdB |
+-----------+-----------+
|         1 |         D | 
|         5 |         F | 
+-----------+-----------+

我只需要表 A 中与表 B 匹配的一个条目。返回表 A 的哪一行并不重要。

我正在使用 SQL Server。 谢谢。


;WITH CTE
AS (
    SELECT  B.objectIdA
           ,A.objectIdB
           ,ROW_NUMBER() OVER (PARTITION BY B.objectIdA ORDER BY A.objectIdB DESC) rn
    FROM TableA A 
    INNER JOIN TableB B ON A.objectIdA = B.objectIdA
   )
SELECT C.objectIdA
      ,C.objectIdB
FROM CTE 
WHERE rn = 1
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

SQL Server - 选择满足条件的第一行 的相关文章

随机推荐