こんにちは私は次のようなクエリのデコード部分を理解するのに助けが必要です。
SELECT ax.animal_code
FROM raw_animal_xref ax,
animal_xref_type axt
WHERE ax.animal_mnemonic = l_animal_mnemonic -- Example 'COUGAR'
AND ax.animal_code_type = axt.animal_code_type
ORDER BY DECODE (animal_type,
l_type_to_be_matched, -1, -- Example 'CATS'
l_current_type, 0, -- Example 'BIG CATS'
nvl(axt.type_search_priority, 100)) ASC; -- EXAMPLE 'Big Cats' Priority is 1
このクエリは1つのクエリしか返さないため、DECODEによって提供される存在しないさまざまな列番号でORDERBYがどのように機能するかについて少し困惑しています。クエリはカーソルとして機能し、現在の動物の種類と一致する種類の動物のニーモニックを指定して、問題の動物の一意のコードを見つけます。
DECODEは異なる列番号をORDERBYに返すと考えており、ORDER by'-1'、 '0'、および '100'を使用して、他のいくつかのテーブルで別の単純な単一列選択を試してみました。 0と100で失敗します。-1またはその他の数値で機能するのはなぜですか。
誰かが私にこれを説明できることを願っています。ありがとう!