0

CASE1 つのステートメントを使用して 2 つの異なる値を返す方法はありますか?

次のクエリにはCASE、同じ条件の 2 つのステートメントがあります。

select  case when DA.value = 1 
            then da.Good else da.Bad end as Foo,
        case when DA.value = 1 
            then ot.Good else ot.Bad end as Bar,
from    someTable DA (nolock)
        join otherTable OT (nolock) on OT...
where   ...

とにかく、そのCASEステートメントを一度指定することはありますか? 条件が変わるたびに両方のステートメントを同期
させる必要がないようにするには?CASE

4

2 に答える 2

2

これが必要かどうかはわかりませんが、次のような組み合わせを行うことができます。

select
   case
      when da.value = 1 and ot.attributeValue = 1 then ot.good
      when da.value = 2 and ot.attributeValue = 3 then ot.good
      ...
      else ot.bad
   end Result
from
   someTable DA

   JOIN otherTable OT
      on (ot.id = da.id)
于 2009-11-03T16:36:18.790 に答える
2

あなたが説明していることを行う方法はありません。ケースステートメントが両方のケースで異なるだけでなく、それぞれのケースでまったく異なるテーブルから値を返しています。

于 2009-11-03T16:21:49.230 に答える