sql >> Database >  >> RDS >> MariaDB

Hoe ELT() werkt in MariaDB

In MariaDB, ELT() is een ingebouwde tekenreeksfunctie die een numeriek argument accepteert, gevolgd door een reeks tekenreeksargumenten. Het geeft dan de tekenreeks terug die overeenkomt met de gegeven numerieke positie die door het eerste argument is opgegeven.

Syntaxis

De syntaxis gaat als volgt:

ELT(N, str1[, str2, str3,...])

Waar N is het numerieke argument, en str1[, str2, str3,…] vertegenwoordigt de stringargumenten.

Voorbeeld

Hier is een eenvoudig voorbeeld:

SELECT ELT(2, 'Red', 'Green', 'Blue');

Resultaat:

+--------------------------------+
| ELT(2, 'Red', 'Green', 'Blue') |
+--------------------------------+
| Green                          |
+--------------------------------+

In dit geval gebruikten we 2 om het tweede tekenreeksargument terug te geven.

Drijft

Als het eerste argument een FLOAT . is , MariaDB rondt het af op het dichtstbijzijnde gehele getal:

SELECT 
    ELT(2.4, 'Red', 'Green', 'Blue') AS "2.4",
    ELT(2.5, 'Red', 'Green', 'Blue') AS "2.5";

Resultaat:

+-------+------+
| 2.4   | 2.5  |
+-------+------+
| Green | Blue |
+-------+------+

Een positie buiten bereik specificeren

Het specificeren van een positie buiten bereik resulteert in null wordt teruggestuurd. Voorbeelden hieronder.

Positie van nul

Het verstrekken van 0 als het eerste argument null teruggeeft :

SELECT ELT(0, 'Red', 'Green', 'Blue');

Resultaat:

+--------------------------------+
| ELT(0, 'Red', 'Green', 'Blue') |
+--------------------------------+
| NULL                           |
+--------------------------------+

Negatieve positie

Het verstrekken van een negatieve waarde als het eerste argument retourneert null :

SELECT ELT(-2, 'Red', 'Green', 'Blue');

Resultaat:

+---------------------------------+
| ELT(-2, 'Red', 'Green', 'Blue') |
+---------------------------------+
| NULL                            |
+---------------------------------+

Als de positie te groot is

Als het eerste argument een getal is dat groter is dan het totale aantal stringargumenten, ELT() geeft null terug:

SELECT ELT(20, 'Red', 'Green', 'Blue');

Resultaat:

+---------------------------------+
| ELT(20, 'Red', 'Green', 'Blue') |
+---------------------------------+
| NULL                            |
+---------------------------------+

Niet-numerieke posities

Als het eerste argument geen getal is, ELT() retourneert null :

SELECT ELT('Two', 'Red', 'Green', 'Blue');

Resultaat:

+------------------------------------+
| ELT('Two', 'Red', 'Green', 'Blue') |
+------------------------------------+
| NULL                               |
+------------------------------------+

Slechts één stringargument geven

Het opgeven van een enkel stringargument is geldig, hoewel in dit geval het eerste argument 1 moet zijn om te voorkomen dat u null . krijgt :

SELECT ELT(1, 'Red');

Resultaat:

+---------------+
| ELT(1, 'Red') |
+---------------+
| Red           |
+---------------+

Null-tekenreeksen

Tekenreeksargumenten kunnen null . zijn zonder de uitkomst van de anderen te beïnvloeden:

SELECT ELT(3, 'Red', null, 'Blue');

Resultaat:

+-----------------------------+
| ELT(3, 'Red', null, 'Blue') |
+-----------------------------+
| Blue                        |
+-----------------------------+

Hoewel, een nummer opgeven dat overeenkomt met de null string argument zal uiteraard null retourneren :

SELECT ELT(2, 'Red', null, 'Blue');

Resultaat:

+-----------------------------+
| ELT(2, 'Red', null, 'Blue') |
+-----------------------------+
| NULL                        |
+-----------------------------+

Een nulpositie specificeren

null opgeven aangezien het eerste argument resulteert in null :

SELECT ELT(null, 'Red');

Resultaat:

+------------------+
| ELT(null, 'Red') |
+------------------+
| NULL             |
+------------------+

Enkel argument

Het verstrekken van slechts één argument levert een fout op:

SELECT ELT(2);

Resultaat:

ERROR 1582 (42000): Incorrect parameter count in the call to native function 'ELT'

Ontbrekend argument

Bellen ELT() zonder het doorgeven van argumenten resulteert in een fout:

SELECT ELT();

Resultaat:

ERROR 1582 (42000): Incorrect parameter count in the call to native function 'ELT'

  1. Een inleiding tot TimescaleDB

  2. Hoe de tabelstructuur in Oracle wijzigen?

  3. JShell gebruiken in Java 9 in NetBeans 9.0, deel 2

  4. ORA-12505, TNS:luisteraar kent momenteel geen SID gegeven in connect des