メインコンテンツまでスキップ
バージョン: 26.x

ELT

説明

ELT関数は、指定されたインデックス位置の文字列を返します。インデックスのカウントは1から始まります。

構文

ELT(<pos>, <str>[, <str> ...])

パラメータ

Parameterデスクリプション
<pos>インデックス位置(1から開始)。型:INT
<str>文字列リスト。型:VARCHAR

Return Value

VARCHAR型を返し、指定されたインデックス位置の文字列を表します。

特殊なケース:

  • <pos>が1未満または文字列数より大きい場合、NULLを返します
  • <pos>がNULLの場合、NULLを返します
  • インデックスは1から開始し、最初の文字列はインデックス1を持ちます

Examples

  1. 基本的な使用法:1番目の文字列を取得
SELECT ELT(1, 'aaa', 'bbb', 'ccc');
+-----------------------------+
| elt(1, 'aaa', 'bbb', 'ccc') |
+-----------------------------+
| aaa |
+-----------------------------+
  1. 2番目の文字列を取得する
SELECT ELT(2, 'aaa', 'bbb', 'ccc');
+-----------------------------+
| elt(2, 'aaa', 'bbb', 'ccc') |
+-----------------------------+
| bbb |
+-----------------------------+
  1. インデックスが範囲外の場合はNULLを返す
SELECT ELT(0, 'aaa', 'bbb'), ELT(5, 'aaa', 'bbb');
+----------------------+----------------------+
| elt(0, 'aaa', 'bbb') | elt(5, 'aaa', 'bbb') |
+----------------------+----------------------+
| NULL | NULL |
+----------------------+----------------------+
  1. NULL値の処理
SELECT ELT(NULL, 'aaa', 'bbb');
+-------------------------+
| elt(NULL, 'aaa', 'bbb') |
+-------------------------+
| NULL |
+-------------------------+
  1. インデックスが範囲を超えた場合はNULLを返す
SELECT ELT(5, 'aaa', 'bbb', 'ccc');
+-----------------------------+
| elt(5, 'aaa', 'bbb', 'ccc') |
+-----------------------------+
| NULL |
+-----------------------------+
  1. 負のインデックスはNULLを返します
SELECT ELT(-1, 'first', 'second');
+----------------------------+
| elt(-1, 'first', 'second') |
+----------------------------+
| NULL |
+----------------------------+
  1. UTF-8文字列
SELECT 
ELT(2, 'Hello', 'ṭṛ', 'Hola');
+-----------------------------------+
| ELT(2, 'Hello', 'ṭṛ', 'Hola') |
+-----------------------------------+
| ṭṛ |
+-----------------------------------+
  1. 空文字列の処理
SELECT ELT(2, 'first', '', 'third');
+------------------------------+
| elt(2, 'first', '', 'third') |
+------------------------------+
| |
+------------------------------+