从 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
);
我有以下 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
);