Oracle の DECODE 関数は非常に強力で一般的に使用される関数で、データのクエリと処理において論理的な判断と値の置換を実装するために使用されます。この記事では、DECODE 関数の高度なテクニックと応用例を検討し、具体的なコード例を示します。
DECODE 関数は、Oracle データベースの条件式関数であり、if-then-else と同様の論理判断と値の置換を実現するために使用されます。構文は次のとおりです。
DECODE(expr, search1, result1, search2, result2, ..., default_result)
このうち、expr は比較する式、search1、search2 などは比較する値、result1、result2 などは対応する結果です。一致する値、default_result は一致しない場合のデフォルトの結果です。
まず、DECODE 関数の簡単な基本的な使用例を見てみましょう従業員の名前と役職情報を含むテーブルがあるとします。
SELECT name, DECODE(job, 'Manager', '经理', 'Clerk', '办事员', 'Worker', '工人', '其他') AS job_cn FROM employee;
上記のクエリは、さまざまな役職の英語名に基づいて、対応する中国語名を返します。役職が一致しない場合は、 「その他」が返されます。
DECODE 関数は、基本的な値置換関数に加えて、他の関数や条件と組み合わせて複雑なロジック処理を実行することもできます。 DECODE 関数の高度なテクニックをいくつか紹介します。
DECODE 関数を CASE 式と組み合わせて使用すると、より柔軟な論理判断と値の置換を実現できます。サンプルコードは次のとおりです。
SELECT name, DECODE(job, 'Manager', '高级职务', 'Worker', '普通职务', CASE WHEN job_rank > 3 THEN '高级职务' ELSE '普通职务' END) AS job_level FROM employee;上記のクエリでは、役職がマネージャーの場合は「上級職」が返され、役職が社員の場合は「一般職」が返されますが、同時に、 job_rank フィールド。3 より大きい場合は「上級職」が返され、それ以外の場合は「通常の職位」が返されます。 3.2. DECODE関数で複数条件の判定を実現 DECODE関数でも複数条件の論理判定を実現 サンプルコードは以下の通りです。 , 結果はさまざまな役職に基づいて表示されます。従業員の給与が調整されます。役職がマネージャーの場合、給与は 1.2 倍になります。役職が事務員の場合、給与は 1.1 倍になります。その他の場合、給与は 2 倍になります。 1.05までに。 4. ケーススタディ次に、特定のケースを使用して DECODE 関数のアプリケーションについて説明します。注文テーブル order_info があり、注文のステータス情報が含まれているとします (1 は注文を意味します)支払い済み、0 は未払いを意味します), 注文情報をクエリして、対応するステータスを返す必要があります。サンプル コードは次のとおりです:
SELECT name, DECODE(job, 'Manager', salary * 1.2, 'Clerk', salary * 1.1, salary * 1.05) AS new_salary FROM employee;
以上がOracle の DECODE 関数の高度なテクニックと事例についてのディスカッションの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。