我有下表:
Vehicle_no DEA_id Name location
--------------------------------------------
1030 T100024 xxxxx Canada
1012 T103125 yyyyy America
1045 T100024 xxxxx Canada
我想检索第一行和具有相同经销商ID的行。对于上面的示例,我要获取的结果是row1和row3 ...
如何在SQL Server中做到这一点?我尝试通过左联接与同一张桌子。但是我没有得到预期的结果。
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表表示无序集。要标识“第一”行,您需要一列来指定顺序。我会写=
而不是使用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
);
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句