Oracle では、decode() 関数を使用して、入力値を関数内のパラメーター リストと比較し、入力値に基づいて対応する値を返します。構文は「decode(condition, value 1)」です。 、戻り値 1 、値 2、戻り値 2、... 値 n、戻り値 n、デフォルト値)」。
このチュートリアルの動作環境: Windows 10 システム、Oracle 11g バージョン、Dell G3 コンピューター。
Oracle 関数の decode の使用法:
decode(条件,值1,返回值1,值2,返回值2,…值n,返回值n,缺省值);
これは decode の式です。
DECODE() 関数は、入力値を関数内のパラメーター リストと比較し、入力値に基づいて対応する値を返します。関数のパラメータ リストは、いくつかの数値とそれに対応する結果の値で構成され、いくつかの偶数形式で構成されます。もちろん、実際のパラメータ シーケンスのいずれとも一致しない場合、関数にはデフォルトの戻り値もあります。
この関数の意味は次のとおりです。
IF 条件=值1 THEN RETURN(翻译值1) ELSIF 条件=值2 THEN RETURN(翻译值2) ...... ELSIF 条件=值n THEN RETURN(翻译值n) ELSE RETURN(缺省值) END IF
decode (フィールドまたはフィールド操作、値 1、値 2、値 3)
この関数の結果は次のとおりです。 , when フィールドの値またはフィールド演算が値 1 に等しい場合、関数は値 2 を返し、それ以外の場合は値 3 を返します。
もちろん、値 1、値 2、および値 3 を式にすることもできます。この関数は特定の SQL ステートメントを作成します。非常に簡単です。
使用方法:
1.サイズを比較
select decode(sign(変数 1-変数 2),-1,変数 1 ,変数 2) from Dual; -- 小さい方の値を取得します
#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') tetdmiseg:のレコード番号の値
select decode(dir,1,0,1) from a1_intervaldir は 1 が 0 になり、0 の場合は 1 になりますたとえば、特定のクラスの男子と女子の数をクエリしたいのですが?通常は
select count(*) from 表 where 性别 = 男; select count(*) from 表 where 性别 = 女;To 一緒に表示したい場合は結合しないといけないので面倒です デコードを使います、一文だけでいいですselect decode(gender, Male, 1, 0), decode(gender, Female, 1, 0) from table 3, order by で文字列を特定の方法で並べ替えます Order by で Decode を使用することもできます。 例: テーブル table_subject には subject_name 列があります。言語、数字、外国語の順に並べ替える必要があります。現時点では、Decode を使用して要件を簡単に満たすことができます。
select * from table_subject order by decode(subject_name, '语文', 1, '数学', 2, , '外语',3)推奨チュートリアル: 「
Oracle ビデオ チュートリアル 」
以上がOracleでのdecodeの使用法は何ですかの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。