sql >> データベース >  >> RDS >> Oracle

OracleのGREATEST()関数

    Oracle Databaseでは、GREATEST() 関数は、1つ以上の式のリストの最大のものを返します。

    構文

    構文は次のようになります:

    GREATEST(expr [, expr ]...)

    最初のexpr 返品タイプを決定するために使用されます:

    • 最初のexprの場合 が数値の場合、Oracleは数値の優先順位が最も高い引数を判別し、比較の前に残りの引数をそのデータ型に暗黙的に変換して、そのデータ型を返します。
    • 最初のexprの場合 ではありません 数値、次に各 expr 最初のデータ型が最初のexprのデータ型に暗黙的に変換された後 比較前。

    次に例を示します:

    SELECT GREATEST('a', 'b', 'c')
    FROM DUAL;

    結果:

    c

    さらにいくつかあります:

    SELECT 
        GREATEST('A', 'a') AS "r1",
        GREATEST('Cat', 'Dog', 'Dot') AS "r2",
        GREATEST(1, 2, 3) AS "r3",
        GREATEST(1, '2', 3) AS "r4",
        GREATEST('Cat', '2001-12-31') AS "r5"
    FROM DUAL;

    結果:

       r1     r2    r3    r4     r5 
    _____ ______ _____ _____ ______ 
    a     Dot        3     3 Cat   

    表現

    引数には、次のような式を含めることができます:

    SELECT GREATEST(2 * 3, 1 * 3)
    FROM DUAL;

    結果:

    6

    日付

    日付文字列の比較は次のとおりです:

    SELECT GREATEST(DATE '2020-01-01', DATE '2021-01-01')
    FROM DUAL;

    結果:

    01-JAN-21

    日付は、現在のセッションの日付形式で返されます。現在のセッションの日付形式を確認する方法を参照してください。

    ヌル値

    引数がnullの場合 、結果はnullです :

    SET NULL 'null';
    SELECT 
        GREATEST(null, 2),
        GREATEST(1, null)
    FROM DUAL;

    結果:

       GREATEST(NULL,2)    GREATEST(1,NULL) 
    ___________________ ___________________ 
    null                               null

    デフォルトでは、SQLclおよびSQL * Plusは、SQL SELECTの結果としてnull値が発生するたびに空白を返します。 声明。

    ただし、SET NULLは使用できます 返される別の文字列を指定します。ここでは、文字列nullを指定しました 返却する必要があります。

    無効な引数カウント

    GREATEST()を呼び出す 引数がないとエラーが発生します:

    SELECT GREATEST()
    FROM DUAL;

    結果:

    SQL Error: ORA-00938: not enough arguments for function
    00938. 00000 -  "not enough arguments for function"

    LEAST()を使用することもできます 1つ以上の式のリストの最小のものを返します。


    1. 2つの異なるテーブルの列sqlite3に結合します

    2. SQL Management Studioで別のポート番号を指定するにはどうすればよいですか?

    3. 修正方法「関連付けられたパーティション関数は、スキームで言及されているファイルグループよりも多くのパーティションを生成します」SQLServerのメッセージ7707

    4. MySQL警告1287を修正:「BINARYexpr」は非推奨であり、将来のリリースで削除される予定です