13

テーブルに列がほとんどありません

Col1Col2Col3Col4

今、このように選択したい

SELECT DISTINCT (Col1, Col2, Col3), Col4

つまり、これらの3つの列のみに基づいて区別を取得します。

4

4 に答える 4

6

GROUP BY Col1, Col2, Col3、、などの集計関数を使用するだけで、次のcol4ようMAXMINなります。

SELECT Col1, Col2, Col3, MAX(Col4)
FROM TableName
GROUP BY Col1, Col2, Col3
于 2012-09-27T12:00:14.310 に答える
3

コメントから別の回答へ:

このCol1、Col2、Col3、および(区切り文字形式のCol4)のようにできますか

はい、を使用できますfor xml path

select Col1, 
       Col2,  
       Col3, 
       (
        select ',' + T2.Col4
        from YourTable T2
        where T1.Col1 = T2.Col1 and
              T1.Col2 = T2.Col2 and
              T1.Col3 = T2.Col3
        for xml path(''), type
       ).value('substring((./text())[1], 2)', 'varchar(max)') as Col4
from YourTable as T1
group by T1.Col1, T1.Col2, T1.Col3

SQLフィドル

于 2012-09-28T05:32:40.643 に答える
1

group byとdistinctは、SQLでほぼ同様の機能を実行します。

したがって、以下の両方のクエリはほぼ同等です。

SELECT DISTINCT Col1, Col2, Col3 FROM tbl

SELECT Col1, Col2, Col3 FROM tbl GROUP BY Col1, Col2, Col3
于 2012-09-27T12:03:13.450 に答える
0
select distinct ( Convert(varchar(255),Col1) +' '+
Convert(varchar(255),Col2)+' '+Convert(varchar(255),Col3)),
Col4 from clients
于 2012-09-27T12:11:40.827 に答える