2017-02-01 6 views
1

私はこのようになりますいくつかのデータを返すクエリがあります。SQLの結果の戻り値は、行の1つが特定の値を有するとき

Select DISTINCT ID_NUM, CRS_ID, ACTION FROM MY_TABLE 

データが返さを次のようになります。

IDをNum | CRS_ID |アクション

1111111 | ABC_DEF | C

1111111 | ABC_DEF | D

1111111 | GHI_JKL | C

2222222 | ABC_DEF | C

2222222 | GHI_JKL | C

ID_NUMとCRS_IDのコンボ用に複数の行がある場合は、複数のアクション値があるイベントに「C」を含む行が1つだけ返されるように、データを操作する必要があります。値が1つだけの場合、そのまま残す必要があります。

+0

なぜこれが下降したのか分かりません。書式設定はやや粗いですが、質問そのものは明確であり、情報を提供して回答するだけの十分な情報があります。 –

答えて

2

これは、ROW_NUMBERを使用してこれを行う方法の1つです。

select ID_NUM 
    , CRS_ID 
    , ACTION 
from 
(
    Select ID_NUM 
     , CRS_ID 
     , ACTION 
     , ROW_NUMBER() over(partition by ID_NUM, CRS_ID order by case when Action = 'C' then 1 else 2 end) as RowNum 
    FROM MY_TABLE 
) x 
where x.RowNum = 1 
関連する問題