-1

以下のクエリを見つけて、ケースを避けて以下のクエリを書き直すことを提案してください。

select A.ID, CASE B.ID IS NOT NULL THEN B.ABID
             ELSE B.XYID  END AS ABXYID
FROM Table_A A, Table_B B
WHERE A.PK = B.PK

パフォーマンスを向上させるために、上記のクエリを書き直してください。

前もって感謝します。

4

1 に答える 1

1

探しているものとは異なりますが、COALESCE関数はnullではない最初の引数を返します。

B.IDがNULLのときにB.ABIDもNULLの場合、次のようにコードを書き直すことができます。

select A.ID,
COALESCE(B.ABID, B.XYID) AS ABXYID
FROM
Table_A A,
Table_B B
Where
A.PK=B.PK

ああ、あなたは本当に適切な内部結合を使用する必要があります:

select A.ID,
COALESCE(B.ABID, B.XYID) AS ABXYID
FROM
Table_A A
INNER JOIN Table_B B
ON A.PK=B.PK
于 2012-11-27T15:00:01.410 に答える