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

MariaDBでのGREATEST()のしくみ

    MariaDBでは、GREATEST() は、引数のリストから最大の(つまり、最大/最大値の)引数を返す組み込み関数です。

    最小を返すには -値の引数、LEAST()を使用 。

    構文

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

    GREATEST(value1,value2,...)

    ここで、value1,value2,… 最大値を返すための2つ以上の引数です。

    次に例を示します:

    SELECT GREATEST(3, 8);

    結果:

    +----------------+
    | GREATEST(3, 8) |
    +----------------+
    |              8 |
    +----------------+

    より多くの引数を使用する別の例を次に示します。

    SELECT GREATEST(3, 8, 9, 12, 80, 7, 4);

    結果:

    +---------------------------------+
    | GREATEST(3, 8, 9, 12, 80, 7, 4) |
    +---------------------------------+
    |                              80 |
    +---------------------------------+

    表現

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

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

    結果:

    +------------------------+
    | GREATEST(2 * 3, 1 * 3) |
    +------------------------+
    |                      6 |
    +------------------------+

    文字列

    引数は数値である必要はありません。たとえば、文字列の比較は次のとおりです。

    SELECT GREATEST('a', 'b', 'z');

    結果:

    +-------------------------+
    | GREATEST('a', 'b', 'z') |
    +-------------------------+
    | z                       |
    +-------------------------+

    日付

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

    SELECT GREATEST('2020-01-01', '2021-01-01');

    結果:

    +--------------------------------------+
    | GREATEST('2020-01-01', '2021-01-01') |
    +--------------------------------------+
    | 2021-01-01                           |
    +--------------------------------------+

    混合タイプ

    MariaDBのドキュメントには、引数のいずれかが大文字と小文字を区別する文字列である場合、引数は大文字と小文字を区別する文字列として比較されると記載されています。ただし、混合タイプを使用すると、予期しない結果が発生し、警告が表示される場合があります。

    例:

    SELECT GREATEST('Cat', 10);

    結果:

    +---------------------+
    | GREATEST('Cat', 10) |
    +---------------------+
    |                  10 |
    +---------------------+
    1 row in set, 1 warning (0.000 sec)

    警告を確認してください:

    SHOW WARNINGS;

    結果:

    +---------+------+-----------------------------------------+
    | Level   | Code | Message                                 |
    +---------+------+-----------------------------------------+
    | Warning | 1292 | Truncated incorrect DOUBLE value: 'Cat' |
    +---------+------+-----------------------------------------+

    ヌル引数

    GREATEST() nullを返します 引数がnullの場合 :

    SELECT GREATEST(1, null, 3);

    結果:

    +----------------------+
    | GREATEST(1, null, 3) |
    +----------------------+
    |                 NULL |
    +----------------------+

    引数がありません

    GREATEST()を呼び出す 引数の数が間違っているか、引数がない場合、エラーが発生します:

    SELECT GREATEST();

    結果:

    ERROR 1582 (42000): Incorrect parameter count in the call to native function 'GREATEST'

    そして:

    SELECT GREATEST(10);

    結果:

    ERROR 1582 (42000): Incorrect parameter count in the call to native function 'GREATEST'

    1. SQL Server ODBCドライバーをアップグレードしましたが、パフォーマンスに悪影響がありました。私に何ができる?

    2. MySQLの日時列から年を取得する方法

    3. PostgreSQLでの論理レプリケーションの概要

    4. 動的SQLを実行するOraclePL/ SQL匿名ブロックから結果セット/カーソルを返す方法は?