SQL Server 2008で1対多の結合が残っており、クエリに割り当てられた優先度に基づいて行を返す必要があります。ランク付けに基づくSQL Server戻り値の結果
私のテーブルでは、これらのvarcharフィールドはアルファベット順に並べることができないので、私は必要とします。それぞれに数値を割り当てます。
Table1
Station 1
Station 2
Station 3
Table2
Station 1 User 1 A
Station 1 User 2 B
Station 1 User 3 A
Station 1 User 4 B
Station 1 User 5 B
Station 2 User 1 B
Station 2 User 2 F
Station 2 User 3 D
Station 2 User 4 S
Station 2 User 5 E
Station 3 User 1 D
Station 3 User 2 D
Station 3 User 3 D
Station 3 User 4 S
Station 3 User 5 C
私は以下の結果を返すしたいと思います:
Station 1 A
Station 2 B
Station 3 C
すなわちAがステーション1のために最も重要であるが、B等ステーション2用
私のロジックは、これまでにありケースを使用し、文を選択してください:
select t1.station
, min(
case
when A then 1
when B then 2
when C then 3
when D then 4
end
)
from table1.t1 left join table2.t2 on t1.station = t2.station
group by t1.station
しかし、私は結合で複数の行を返すので、私は分かりませんどのようにこれに対処するには、私も割り当てられた優先順位ではなく、文字列を返したいと思います。私はあなたがROW_NUMBER
機能のORDER BY
句でCASE
表現を使用することができます事前に感謝
あなたが供給している詳細と参加する必要はありませんように私は、これまで以上ありますと仮定します。 ..)駅からt2グループから: – Phylogenesis
@Phylogenesis、はい私は(試して)いくつかの明快さを与えるためにそれをトリミング – User632716