2016-03-23 4 views
0

に基づく値は、例えばのためのテーブルを形成複製するには:あなたは、ステータス= H、優先列が高いに変更する必要がある場合どのように私は条件に基づいて値を選択する必要がID

Id name value status priority 
1 ram 23  p  high 
1 kev 23  p  Medi 
1 Mac 23  h  high 
2 Dot 25  f  low 
2 Dot 25  h  Avg 
3 Pat 25  f  low 
3 vin 25  u  low 

表示された場合選択

中にid列に基づいて結果は表の下にある必要があります

Id name value status priority 
1 ram  23  p  high 
1 kev  23  p  high 
1 Mac  23  h  high 
2 Dot  25  f  high 
2 Dot  25  h  high 
3 Pat  25  f  low 
3 vin  25  u  low 

助けてくれ

答えて

3

私が正しく理解していれば、あなたはいくつかの条件付きロジックを持つウィンドウ関数たい:

select t.id, t.name, t.value, t.status, 
     (case when sum(case when status = 'h' then 1 else 0 end) over (partition by id) > 0 
      then 'high' 
      else priority 
     end) as priority 
from t; 
+0

をはい、この1つは私のロジックとあなたの迅速な対応に感謝して動作します – user2302158

関連する問題