2017-01-15 17 views
0

私は3列あります。oracle sqlデベロッパーでのみ1列で異なる値を選択

column_a, column_b, column_c 

私はcolumn_aでのみ区別できるようにすべての行を取得しようとしています。私は

select distinct column_a,column_b,column_c 

を書くとき

私はそれは私に明確なペアを与えると思います。だから、私はそのSQLクエリからテーブルを作成します原因COLUMN_Bとcolumn_c値によって、以下のcolumn_aの別個の値を維持したい

value1 - a - b 
value1 - a - c 

を持っていると私はPKにcolumn_a列を追加します。

答えて

0

私が最も安全な方法はrow_number()を使用することであると思う:

select a, b, c 
from (select t.*, 
      row_number() over (partition by a order by a) as seqnum 
     from t 
    ) t 
where seqnum = 1; 

これは、各a値のための任意の行を返しますが、aは、結果セットで繰り返されることはありません。

関連する問題