MariaDB
 sql >> Datenbank >  >> RDS >> MariaDB

Wie ELT() in MariaDB funktioniert

In MariaDB ELT() ist eine integrierte Zeichenfolgenfunktion, die ein numerisches Argument akzeptiert, gefolgt von einer Reihe von Zeichenfolgenargumenten. Es gibt dann die Zeichenfolge zurück, die der angegebenen numerischen Position entspricht, die vom ersten Argument bereitgestellt wird.

Syntax

Die Syntax lautet wie folgt:

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

Wobei N ist das numerische Argument und str1[, str2, str3,…] stellt die String-Argumente dar.

Beispiel

Hier ist ein einfaches Beispiel:

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

Ergebnis:

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

In diesem Fall haben wir 2 verwendet um das zweite String-Argument zurückzugeben.

Schwimmer

Wenn das erste Argument ein FLOAT ist , MariaDB rundet es auf die nächste ganze Zahl:

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

Ergebnis:

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

Festlegen einer Position außerhalb des Bereichs

Die Angabe einer Position außerhalb des gültigen Bereichs führt zu null zurückgegeben wird. Beispiele unten.

Position von Null

Bereitstellung von 0 als erstes Argument gibt null zurück :

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

Ergebnis:

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

Negative Position

Wenn Sie als erstes Argument einen negativen Wert angeben, wird null zurückgegeben :

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

Ergebnis:

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

Wenn die Position zu groß ist

Wenn das erste Argument eine Zahl ist, die größer ist als die Gesamtzahl der Zeichenfolgenargumente, ELT() gibt null zurück:

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

Ergebnis:

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

Nicht numerische Positionen

Wenn das erste Argument keine Zahl ist, ELT() gibt null zurück :

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

Ergebnis:

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

Nur ein String-Argument bereitstellen

Die Angabe eines einzelnen String-Arguments ist gültig, obwohl in diesem Fall das erste Argument 1 sein müsste um zu vermeiden, null zu erhalten :

SELECT ELT(1, 'Red');

Ergebnis:

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

Null-Strings

Zeichenfolgenargumente können null sein ohne das Ergebnis der anderen zu beeinflussen:

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

Ergebnis:

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

Geben Sie jedoch eine Zahl an, die mit null übereinstimmt Das String-Argument gibt offensichtlich null zurück :

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

Ergebnis:

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

Festlegen einer Nullposition

Bereitstellung von null als erstes Argument ergibt null :

SELECT ELT(null, 'Red');

Ergebnis:

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

Einzelnes Argument

Wenn Sie nur ein Argument angeben, wird ein Fehler zurückgegeben:

SELECT ELT(2);

Ergebnis:

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

Fehlendes Argument

Aufruf von ELT() ohne Übergabe von Argumenten ergibt sich ein Fehler:

SELECT ELT();

Ergebnis:

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