T-SQL:“;压缩";值等于1的行

T-SQL:“;压缩";值等于1的行,sql,sql-server,tsql,Sql,Sql Server,Tsql,如果存在具有相同值的行,是否有可能只显示一行 我有以下场景: ID | A列| B列| C列 1 | 2 |测试| 5 2 | 3 |测试| 6 3 | 2 |测试| 5 在此场景中,我只想显示以下结果集: ID | A列| B列| C列 1 | 2 |测试| 5 2 | 3 |测试| 6 谢谢你的帮助 尊敬的pro,由于id列的原因,您的行不是完全重复的。如果您不在乎id的哪个值出现,您可以按如下方式执行操作: select max(id) as id, ColumnA, ColumnB, C

如果存在具有相同值的行,是否有可能只显示一行

我有以下场景:

ID | A列| B列| C列

1 | 2 |测试| 5

2 | 3 |测试| 6

3 | 2 |测试| 5

在此场景中,我只想显示以下结果集:

ID | A列| B列| C列

1 | 2 |测试| 5

2 | 3 |测试| 6

谢谢你的帮助


尊敬的pro,由于id列的原因,您的行不是完全重复的。如果您不在乎id的哪个值出现,您可以按如下方式执行操作:

select max(id) as id, ColumnA, ColumnB, ColumnC
from t
group by ColumnA, ColumnB, ColumnC
如果您根本不需要id,那么这更简单:

select distinct ColumnA, ColumnB, ColumnC
from t

?!@JNK支架丢失。现在已更正!当我打开这个问题时,没有任何答案!令人惊讶的是,在我写剧本并粘贴到这里的时候,看到了这么多答案。
Try this :

With cte As
( Select  * , row_number() over (partition by ColumnA, ColumnB,ColumnC
 order by ID ) as myrownumber from myTable
)
Select * from cte where myrownumber=1
select id, column1,column2,colum3 from
(
    select *, row_number() over (partition by column1,column2,colum3 order by id) as sno 
    from table
) as t
where sno=1
CREATE TABLE #test
(
    ID      TINYINT     NOT NULL,
    colA    TINYINT     NOT NULL,
    colB    VARCHAR(10) NOT NULL,
    colC    TINYINT     NOT NULL
);

INSERT INTO #test VALUES (1,2, 'test', 5);
INSERT INTO #test VALUES (2,3, 'test', 6);
INSERT INTO #test VALUES (3,2, 'test', 5);

SELECT 
    ID,
    ColA,
    ColB,
    ColC
FROM 
(   
    SELECT 
        ID,
        ColA,
        ColB,
        ColC,
        ROW_NUMBER() OVER(PARTITION BY ColA ORDER BY ColA DESC) AS RowNum
      FROM #test
) AS WorkTable
WHERE RowNum = 1