Функция 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 условие
Таблицы для примеров
id айди |
field1 поле1 |
field2 поле2 |
field2 поле2 |
---|---|---|---|
1 | поле1 | поле2 | поле3 |
2 | поле1 | поле2 | поле3 |
3 | поле1 | поле2 | поле3 |
id айди |
field1 поле1 |
field2 поле2 |
field2 поле2 |
number число |
---|---|---|---|---|
1 | поле1 | поле2 | поле3 | 3 |
2 | поле1 | поле2 | поле3 | 2 |
3 | поле1 | поле2 | поле3 | 1 |
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 | чт |