0

同じ値を持つ行がある場合、1 行だけを表示する可能性はありますか?

私は次のシナリオを持っています:

ID | 列 A | 列 B | C列

1 | 2 | 'テスト' | 5

2 | 3 | 'テスト'| 6

3 | 2 | 'テスト'| 5

このシナリオでは、次の結果セットのみを表示したい:

ID | 列 A | 列 B | C列

1 | 2 | 'テスト' | 5

2 | 3 | 'テスト'| 6

ご協力いただきありがとうございます。

よろしく、プロ

4

4 に答える 4

6

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
于 2012-07-16T13:16:09.387 に答える
2
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
于 2012-07-16T13:16:27.247 に答える
0
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
于 2012-07-16T13:17:59.407 に答える
0
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
于 2012-07-16T13:25:35.933 に答える