ホームページ >データベース >Oracle >Oracleでのdecodeの使用法は何ですか

Oracleでのdecodeの使用法は何ですか

WBOY
WBOYオリジナル
2022-03-01 10:23:5742944ブラウズ

Oracle では、decode() 関数を使用して、入力値を関数内のパラメーター リストと比較し、入力値に基づいて対応する値を返します。構文は「decode(condition, value 1)」です。 、戻り値 1 、値 2、戻り値 2、... 値 n、戻り値 n、デフォルト値)」。

Oracleでのdecodeの使用法は何ですか

このチュートリアルの動作環境: Windows 10 システム、Oracle 11g バージョン、Dell G3 コンピューター。

oracle での decode の使用法とは

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') tetdmis

eg:

のレコード番号の値

select decode(dir,1,0,1) from a1_interval

dir は 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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。