跳到主要内容

ELT

描述

ELT 函数根据指定的索引位置返回对应的字符串。索引从1开始计数。

语法

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

参数

参数说明
<pos>索引位置(从1开始)。类型:INT
<str>字符串列表。类型:VARCHAR

返回值

返回 VARCHAR 类型,为指定索引位置的字符串。

特殊情况:

  • 如果 <pos> 小于1或大于字符串数量,返回 NULL
  • 如果 <pos> 为 NULL,返回 NULL
  • 索引从1开始,第一个字符串的索引为1

示例

  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') |
+------------------------------+
| |
+------------------------------+