从 SQL 服务器 table 检索列中具有相同值的行

Retrieving rows from a SQL Server table which has same value in a column

我有以下 table:

Vehicle_no  DEA_id      Name       location
--------------------------------------------
1030        T100024     xxxxx      Canada
1012        T103125     yyyyy      America
1045        T100024     xxxxx      Canada

我想检索第一行和具有相同经销商 ID 的行。对于上面的例子,我想要得到的结果是row1和row3...

如何在 SQL 服务器中执行此操作?我尝试用相同的 table 左连接。但是我没有得到预期的结果。

SELECT  *
FROM ODS.MKT_DEALER_GET AS t1
INNER JOIN
    (SELECT TOP 1 * 
     FROM ODS.MKT_DEALER_GET) AS t2 ON t.[DEA_id] = ts.[DEA_id]

请帮我解决这个问题。我的数据库是 SQL Server

SQL 表表示 无序 集合。要识别 "first" 行,您需要一个指定排序的列。我会使用 = 而不是 JOIN:

来写这个
SELECT dg.*
FROM ODS.MKT_DEALER_GET dg
WHERE dg.DEA_id = (SELECT TOP 1 dg2.DEA_id
                   FROM ODS.MKT_DEALER_GET dg2
                   ORDER BY ?
                  );

或者,如果您有其他信息,请使用 WHERE:

SELECT dg.*
FROM ODS.MKT_DEALER_GET dg
WHERE dg.DEA_id = (SELECT TOP 1 dg2.DEA_id
                   FROM ODS.MKT_DEALER_GET dg2
                   WHERE Vehicle_no = 1030
                  );