decode() 関数は、ORACLE PL/SQL の最も強力な関数の 1 つです。現在、この関数を提供しているのは ORACLE の SQL だけであり、他のデータベース メーカーの SQL 実装にはまだこの関数がありません。この記事ではOracleのデコード機能の使い方を中心に紹介しますので、必要な方は参考にしていただければ幸いです。
意味の説明:
IF 条件=值1 THEN RETURN(翻译值1) ELSIF 条件=值2 THEN RETURN(翻译值2) ...... ELSIF 条件=值n THEN RETURN(翻译值n) ELSE RETURN(缺省值) END IF decode(字段或字段的运算,值1,值2,值3)この関数の結果は、フィールドの値またはフィールド演算が値 1 に等しい場合、関数は値 2 を返し、それ以外の場合は値 3 を返します
もちろん、値 1、値 2、および値 3 は式にすることもできます
使用方法:
1. サイズを比較しますselect decode(sign(variable 1-variable 2),-1, variable 1, variable) 2) デュアルから; -- 小さい方の値sign() 関数を使用し、値が 0、正、負のいずれであるかに応じて、それぞれ 0、1、-1 を返します例: 変数 1=10、変数2=20の場合、sign(変数1 - 変数2)は-1を返し、デコード結果は「変数1」となり、より小さい値を取るという目的は達成されます。 2. この関数は SQL ステートメントで使用されます。関数は次のように導入されます。 Decode 関数は、一連のネストされた IF-THEN-ELSE ステートメントに似ています。 base_exp は、compare1、compare2 などと順番に比較されます。 Base_exp が i 番目の比較項目と一致する場合、i 番目の対応する値を返します。 Base_exp がどの比較値にも一致しない場合は、デフォルトが返されます。各比較値は順番に評価され、一致が見つかった場合、残りの比較値 (存在する場合) は再度評価されません。 NULL のbase_exp は、NULL 比較値と同等であるとみなされます。必要に応じて、各比較値は最初の比較値と同じデータ型に変換され、これが戻り値の型でもあります。 実際の開発ではDecode関数がとても役立ちますLpad関数と組み合わせて、主キーの値を自動的に1ずつ増やして先頭に0を追加する方法select LPAD(decode(count(记录编号),0,1,max(to_number(记录编号)+1)),14,'0') 记录编号 from tetdmis eg: select decode(dir,1,0,1) from a1_intervaldirの値が1から0に変化するので、そして0から1へ たとえば、特定のクラスの男の子と女の子の数をクエリしたいのですが 通常、次のように書きます:
select count(*) from 表 where 性别 = 男; select count(*) from 表 where 性别 = 女;それらを一緒に表示したい場合は、それらを結合する必要があります。これは面倒ですデコードを使用してください。必要なのは 1 つの文だけです
select sum(decode(性别,男,1,0)),sum(decode(性别,女,1,0)) from 表 eg: select sum(decode(siteno,'LT',1,0)),sum(decode(siteno,'SZ',1,0)) from facd605; select sum(case siteno when 'LT' then 1 else 0 end),sum(case siteno when 'SZ' then 1 else 0 end) from facd605; vinson関連する推奨事項:
PHP の json_decode メソッドは特別な疑問符文字を解析できません
PHP が中国語のメソッドをエスケープせずに json_decode を実装する方法
json_encode と json_decode の違いを比較してください
以上がOracleのデコード機能の使い方を詳しく解説の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。