Функция ELT

Функция ELT выбирает одно из полей по его номеру (нумерация полей с единицы).

Номер поля задается первым параметром, а остальными параметрами задаются имена полей. Выглядит это примерно так: ELT(номер, поле1, поле2, поле2). Если, к примеру, вместо номера передать 1 - то выберется значение поля1, если 2 - значение поля2, если 3 - значение поля 3.

Вместо полей могут быть строки или числа, например, так: ELT(номер, 'строка1', 2, 'строка3'). Можно также комбинировать строки, числа и поля: ELT(номер, 'строка1', 2, поле1).

Если номер меньше, чем 1 или больше, чем число полей, возвращается NULL.

Синтаксис

SELECT ELT(число, поле1, поле2...) FROM имя_таблицы WHERE условие

Таблицы для примеров

таблица texts
id
айди
field1
поле1
field2
поле2
field2
поле2
1 поле1 поле2 поле3
2 поле1 поле2 поле3
3 поле1 поле2 поле3
таблица texts-num
id
айди
field1
поле1
field2
поле2
field2
поле2
number
число
1 поле1 поле2 поле3 3
2 поле1 поле2 поле3 2
3 поле1 поле2 поле3 1
таблица users
id
айди
name
имя
date
дата рождения
1 user1 1988-03-01
2 user2 1989-04-02
3 user3 1990-05-03

Пример

В данном примере с помощью ELT выбирается содержимое первого поля из таблицы:

SELECT id, ELT(1, field1, field2, field3) as elt FROM texts

Результат выполнения кода:

id
айди
elt
поле
1 поле1
2 поле1
3 поле1

Пример

В данном примере с помощью ELT выбирается содержимое второго поля из таблицы:

SELECT id, ELT(2, field1, field2, field3) as elt FROM texts

Результат выполнения кода:

id
айди
elt
поле
1 поле2
2 поле2
3 поле2

Пример

В данном примере с помощью ELT выбирается содержимое третьего поля из таблицы:

SELECT id, ELT(3, field1, field2, field3) as elt FROM texts

Результат выполнения кода:

id
айди
elt
поле
1 поле3
2 поле3
3 поле3

Пример

В данном примере из таблицы texts_num с помощью ELT выбирается содержимое поля, номер которого задан полем number:

SELECT id, number, ELT(number, field1, field2, field3) as elt FROM texts_num

Результат выполнения кода:

id
айди
number
число
elt
поле
1 3 поле3
2 2 поле2
3 1 поле1

Пример

В данном примере из таблицы users с помощью ELT и функции DAYOFWEEK выводится день недели по-русски:

SELECT *, ELT(DAYOFWEEK(date), 'вс', 'пн', 'вт', 'ср', 'чт', 'пт', 'сб') as day FROM users

Результат выполнения кода:

id
айди
name
имя
date
дата рождения
day
день недели
1 user1 1988-03-01 вт
2 user2 1989-04-02 вс
3 user3 1990-05-03 чт

Смотрите также

  • функцию FIELD,
    которая выбирает поле по его содержимому
  • функцию GREATEST,
    которая находит максимальное из значений
  • функцию LEAST,
    которая находит минимальное из значений