SQL Server:在某些coulmn上仅选择一行具有相同ID的行

SQL Server:在某些coulmn上仅选择一行具有相同ID的行,sql,sql-server,Sql,Sql Server,我有一个有3列的表: -身份证 -从 -到 我有这样的数据 ----------------------- ID | FROM | TO 1 | 2 | 1 2 | 5 | 1 3 | 7 | 1 4 | 2 | 1 5 | 2 | 1 6 | 9 | 1 7 | 3 | 1 8 | 4 |

我有一个有3列的表: -身份证 -从 -到 我有这样的数据

-----------------------
ID   |   FROM   |   TO
1    |   2      |   1
2    |   5      |   1
3    |   7      |   1
4    |   2      |   1
5    |   2      |   1
6    |   9      |   1
7    |   3      |   1
8    |   4      |   1
9    |   5      |   1
我想创建一个查询,选择to=1的所有行,我不想显示以前检索到的行,例如,我有多行FROM=2和to=1,我只需要检索该行一次


我的表格看起来不是这样的,但我举了一个小例子,因为我的目标是收集所有数字,但没有任何冗余

使用
DISTINCT

从表中选择DISTINCT from,to to to,其中to=1
使用DISTINCT关键字

select distinct m.from,m.to from mytable as m;

您只需按要显示的列进行分组:

select [from] from mytable group by [from]
如果你想知道你有多少个From,你需要做的就是:

select [from], count(*) from mytable group by [from]
您可以使用
distinct
,但它比group by慢,但需要更多内存

如果您想了解
分组依据
不同
之间的区别,请阅读此处:
不确定您的确切意思
选择distinct[FROM]FROM TableName,其中[TO]=1

对于给定的[TO],每个不同的[FROM]值可能需要一行

;with cte as (
    select ID, [FROM], [TO],
        rn = row_number() over (partition by [FROM] order by ID)
    from TableName
    where [TO] = 1
)
select ID, [FROM], [TO]
from cte
where rn=1

是否需要返回/显示除“发件人”和“收件人”之外的其他列?是否需要
ID
列?如果需要,应选择哪一列?非常感谢,非常有帮助:)