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

MariaDBでのELT()のしくみ

    MariaDBでは、ELT() は、数値引数とそれに続く一連の文字列引数を受け入れる組み込みの文字列関数です。次に、最初の引数で指定された数値位置に対応する文字列を返します。

    構文

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

    ELT(N, str1[, str2, str3,...])

    ここでN は数値引数であり、str1[, str2, str3,…] 文字列引数を表します。

    基本的な例は次のとおりです。

    SELECT ELT(2, 'Red', 'Green', 'Blue');

    結果:

    +--------------------------------+
    | ELT(2, 'Red', 'Green', 'Blue') |
    +--------------------------------+
    | Green                          |
    +--------------------------------+

    この場合、2を使用しました 2番目の文字列引数を返します。

    フロート

    最初の引数がFLOATの場合 、MariaDBはそれを最も近い整数に丸めます:

    SELECT 
        ELT(2.4, 'Red', 'Green', 'Blue') AS "2.4",
        ELT(2.5, 'Red', 'Green', 'Blue') AS "2.5";

    結果:

    +-------+------+
    | 2.4   | 2.5  |
    +-------+------+
    | Green | Blue |
    +-------+------+

    範囲外の位置を指定する

    範囲外の位置を指定すると、nullになります 返されます。以下の例。

    ゼロの位置

    0を提供する 最初の引数がnullを返すため :

    SELECT ELT(0, 'Red', 'Green', 'Blue');

    結果:

    +--------------------------------+
    | ELT(0, 'Red', 'Green', 'Blue') |
    +--------------------------------+
    | NULL                           |
    +--------------------------------+

    ネガティブポジション

    最初の引数として負の値を指定すると、nullが返されます :

    SELECT ELT(-2, 'Red', 'Green', 'Blue');

    結果:

    +---------------------------------+
    | ELT(-2, 'Red', 'Green', 'Blue') |
    +---------------------------------+
    | NULL                            |
    +---------------------------------+

    位置が大きすぎる場合

    最初の引数が文字列引数の総数より大きい場合は、ELT() nullを返します:

    SELECT ELT(20, 'Red', 'Green', 'Blue');

    結果:

    +---------------------------------+
    | ELT(20, 'Red', 'Green', 'Blue') |
    +---------------------------------+
    | NULL                            |
    +---------------------------------+

    数値以外の位置

    最初の引数が数値でない場合は、ELT() nullを返します :

    SELECT ELT('Two', 'Red', 'Green', 'Blue');

    結果:

    +------------------------------------+
    | ELT('Two', 'Red', 'Green', 'Blue') |
    +------------------------------------+
    | NULL                               |
    +------------------------------------+

    文字列引数を1つだけ提供する

    単一の文字列引数を指定することは有効ですが、この場合、最初の引数は1である必要があります。 nullを回避するため :

    SELECT ELT(1, 'Red');

    結果:

    +---------------+
    | ELT(1, 'Red') |
    +---------------+
    | Red           |
    +---------------+

    ヌル文字列

    文字列引数はnullにすることができます 他の人の結果に影響を与えることなく:

    SELECT ELT(3, 'Red', null, 'Blue');

    結果:

    +-----------------------------+
    | ELT(3, 'Red', null, 'Blue') |
    +-----------------------------+
    | Blue                        |
    +-----------------------------+

    ただし、nullに一致する番号を指定します 文字列引数は明らかにnullを返します :

    SELECT ELT(2, 'Red', null, 'Blue');

    結果:

    +-----------------------------+
    | ELT(2, 'Red', null, 'Blue') |
    +-----------------------------+
    | NULL                        |
    +-----------------------------+

    ヌル位置の指定

    nullを提供する 最初の引数はnullになります :

    SELECT ELT(null, 'Red');

    結果:

    +------------------+
    | ELT(null, 'Red') |
    +------------------+
    | NULL             |
    +------------------+

    単一の引数

    引数を1つだけ指定すると、エラーが返されます:

    SELECT ELT(2);

    結果:

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

    引数がありません

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

    SELECT ELT();

    結果:

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

    1. codeigniterのアクティブレコードパターンを使用したUNIONクエリ

    2. Oracle:2つの日付間のHH:MM:SSの時間差を計算します

    3. MySQLレプリケーションのトラブルシューティング:パート1

    4. OracleのNCHAR列またはNVARCHAR列に国別文字を挿入しても機能しません