一方向関数の下のOracle
ヌル相関関数
機能紹介
機能 | 効果 |
---|---|
NVL(X1、X2) | x1がNULLの場合、関数はX2の値を表示します |
NVL2(X1、X2、X3) | x1がNULLの場合、関数はX3の値を表示します。X2の表示値、NULLではありません |
NULLIF(X1、X2) | もし、X1 = X2リターンNULL、そうでない場合など、最初の式の値が返されます。 |
COALSECE(X1、X2、X3、... XN) | 全体がNULLの場合、関数の値がNULLであり、いずれかがNULLでない場合、最初のエントリが空でない表示され、3つの空ではない場合は、最前面の一方が表示されます。 |
ケースコードが実証します
--两个参数都不为空,返回第一个参数
SQL> SELECT NVL(0,1) FROM DUAL;
NVL(0,1)
----------
0
--第一个参数为空,则返回第二个参数
SQL> SELECT NVL(NULL,1) FROM DUAL;
NVL(NULL,1)
-----------
1
-------------------------------------------------------------------------------------
-------------------------------------------------------------------------------------
-- 第一个参数不为空值,返回第二个
SQL> SELECT NVL2(1,2,3) FROM DUAL;
NVL2(1,2,3)
-----------
2
--第一个参数为空,则返回第三个
SQL> SELECT NVL2(NULL,2,3) FROM DUAL;
NVL2(NULL,2,3)
--------------
3
-------------------------------------------------------------------------------------
-------------------------------------------------------------------------------------
--两个参数相等返回第一个
SQL> SELECT NULLIF(1,2) FROM DUAL;
NULLIF(1,2)
-----------
1
--两个参数不相等,返回空
SQL> SELECT NULLIF(2,2) FROM DUAL;
NULLIF(2,2)
-----------
-------------------------------------------------------------------------------------
-------------------------------------------------------------------------------------
--参数全部为空,返回空
SQL> SELECT COALESCE(NULL,NULL,NULL) FROM DUAL;
C
----------
--有一个不为空,返回第一个非空值
SQL> SELECT COALESCE(NULL,2,NULL) FROM DUAL;
COALESCE(NULL,2,NULL)
---------------------
2
--都不为空则返回第一个值
SQL> SELECT COALESCE(1,2,3) FROM DUAL;
COALESCE(1,2,3)
---------------
1
コーデック機能
ファンクションコード説明
-
DECODE
-
他の - -elif条件判定ロジックは、関数DECODEで類似している場合
-
DECODE(条件1つの条件、値1、条件2を返し、値2を返し...条件N、戻り値N、その他)
:どのような機能を説明
。THEN条件IF =条件1
RETURN(戻り値1)
ELSIF条件THEN =条件2
RETURN(戻り値2)
...
ELSE
RETURN(その他)
END IF
-
SQL> SELECT DECODE(99,9,'不相等',99,'相等','no') FROM DUAL;
DECODE(99,9,
------------
相等
-
投げ捨てる
-
DUMP(exprは、[return_fmtに] [START_POSITION] [長さ])
-
そこ四つの基本的なパラメータがありますが、あなたは、ダイレクトリターンNULLを埋めることができないとき、少なくとも、他の3つのパラメータはまた、それらのデフォルト値を持っています。
パラメータの詳細
はexpr:このパラメータは、操作データ(または他のデジタル文字列、各タイプの値であってもよいです)return_fmtには:リターン・パラメータのフォーマットを参照し、使用の5種類があります。
-
1)8:バイナリ値8に結果を返します
-
2)10:)10進の結果(デフォルトの値を返します
-
3)16:16進数で結果を返します
-
4)17:単一文字値の形式で結果を返します
-
5)1000年:1000プラス4以上、プラス戻り値は、現在の文字セットを示し、
START_POSITION:返された開始文字位置
長さ:文字の長さに戻る必要
-
-
ケースコードが実証します
-- 不传入参数
SQL> SELECT DUMP('abc') FROM DUAL;
DUMP('ABC')
--------------------------------------------
Typ=96 Len=3: 97,98,99
--传入三个参数的时候,最后一个长度参数不传。则默认后边剩余的所有字符
SQL> SELECT DUMP('abcdef',1000,2) FROM DUAL;
DUMP('ABCDEF',1000,2)
----------------------------------------------
Typ=96 Len=6: b,c,d,e,f
--全部参数传入
SQL> SELECT DUMP('abcdef',1000,2,4) FROM DUAL;
DUMP('ABCDEF',1000,2,4)
------------------------------------------
Typ=96 Len=6: b,c,d,e
--在返回值中加上字符集
SQL> SELECT DUMP('abcdef',1016,2,4) FROM DUAL;
DUMP('ABCDEF',1016,2,4)
--------------------------------------------------------------------------------
Typ=96 Len=6 CharacterSet=AL32UTF8: 62,63,64,65
ネストされた関数
機能紹介
- 関数は、別の関数のネストされた関数の形成に時間の関数の引数である関数の戻り値の内部に定義されている場合。
- 一方向関数は、任意のレベルまでネストすることができます
- ネストされた関数の実行順序は、内側から外側にあります
ケース・プレゼンテーション
-- 利用嵌套函数,查询二十年后的今天,返回日期,星期
SQL> SELECT TO_CHAR( ADD_MONTHS(TO_DATE(SYSDATE),12*20),'YYYY-mm-dd day') BIRTHDAY_182 FROM DUAL;
BIRTHDAY_182
----------------------------------------------
2040-03-16 星期二
レコードを勉強しながら、不備は、メッセージのポインティングを歓迎している場合...