に最終更新
ELT
説明
ELT 関数は指定したインデックス位置にある文字列を返します。インデックスは 1 から始まります。
構文
ELT(<pos>, <str>[, <str> ...])
パラメータ
| パラメータ | 説明 |
|---|---|
<pos> | インデックス位置(1 から開始)。型:INT |
<str> | 文字列のリスト。型:VARCHAR |
戻り値
指定したインデックス位置にある文字列を VARCHAR 型で返します。
特殊なケース:
<pos>が 1 未満、または文字列の数を超える場合は NULL を返します<pos>が NULL の場合は NULL を返します- インデックスは 1 から始まり、最初の文字列のインデックスは 1 です
例
- 基本的な使い方:1 番目の文字列を取得
SELECT ELT(1, 'aaa', 'bbb', 'ccc');
+-----------------------------+
| elt(1, 'aaa', 'bbb', 'ccc') |
+-----------------------------+
| aaa |
+-----------------------------+
- 2 番目の文字列を取得
SELECT ELT(2, 'aaa', 'bbb', 'ccc');
+-----------------------------+
| elt(2, 'aaa', 'bbb', 'ccc') |
+-----------------------------+
| bbb |
+-----------------------------+
- インデックスが範囲外の場合は NULL を返す
SELECT ELT(0, 'aaa', 'bbb'), ELT(5, 'aaa', 'bbb');
+----------------------+----------------------+
| elt(0, 'aaa', 'bbb') | elt(5, 'aaa', 'bbb') |
+----------------------+----------------------+
| NULL | NULL |
+----------------------+----------------------+
- NULL 値の処理
SELECT ELT(NULL, 'aaa', 'bbb');
+-------------------------+
| elt(NULL, 'aaa', 'bbb') |
+-------------------------+
| NULL |
+-------------------------+
- インデックスが範囲を超える場合は NULL を返す
SELECT ELT(5, 'aaa', 'bbb', 'ccc');
+-----------------------------+
| elt(5, 'aaa', 'bbb', 'ccc') |
+-----------------------------+
| NULL |
+-----------------------------+
- 負のインデックスの場合は NULL を返す
SELECT ELT(-1, 'first', 'second');
+----------------------------+
| elt(-1, 'first', 'second') |
+----------------------------+
| NULL |
+----------------------------+
- UTF-8 文字列
SELECT
ELT(2, 'Hello', 'ṭṛ', 'Hola');
+-----------------------------------+
| ELT(2, 'Hello', 'ṭṛ', 'Hola') |
+-----------------------------------+
| ṭṛ |
+-----------------------------------+
- 空文字列の処理
SELECT ELT(2, 'first', '', 'third');
+------------------------------+
| elt(2, 'first', '', 'third') |
+------------------------------+
| |
+------------------------------+