ホームページ >データベース >mysql チュートリアル >Oracleのデコード機能の使い方を詳しく解説

Oracleのデコード機能の使い方を詳しく解説

小云云
小云云オリジナル
2018-05-15 15:07:143185ブラウズ

decode() 関数は、ORACLE PL/SQL の最も強力な関数の 1 つです。現在、この関数を提供しているのは ORACLE の SQL だけであり、他のデータベース メーカーの SQL 実装にはまだこの関数がありません。この記事ではOracleのデコード機能の使い方を中心に紹介しますので、必要な方は参考にしていただければ幸いです。

意味の説明:

decode(条件、値1、戻り値1、値2、戻り値2、...値n、戻り値n、デフォルト値)

この関数の意味は、次のように:

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_interval

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

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