sql >> Database teknologi >  >> RDS >> MariaDB

Sådan fungerer ELT() i MariaDB

I MariaDB, ELT() er en indbygget strengfunktion, der accepterer et numerisk argument efterfulgt af en række strengargumenter. Det returnerer derefter den streng, der svarer til den givne numeriske position, som det første argument giver.

Syntaks

Syntaksen ser sådan ud:

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

Hvor N er det numeriske argument, og str1[, str2, str3,…] repræsenterer strengargumenterne.

Eksempel

Her er et grundlæggende eksempel:

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

Resultat:

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

I dette tilfælde brugte vi 2 for at returnere det andet strengargument.

Flyder

Hvis det første argument er en FLOAT , MariaDB runder det af til det nærmeste heltal:

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

Resultat:

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

Specificering af en position uden for rækkevidde

Angivelse af en position uden for rækkevidde resulterer i null bliver returneret. Eksempler nedenfor.

Nulstilling

Giver 0 som det første argument returnerer null :

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

Resultat:

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

Negativ position

Angivelse af en negativ værdi som det første argument returnerer null :

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

Resultat:

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

Når positionen er for stor

Hvis det første argument er et tal, der er større end det samlede antal strengargumenter, ELT() returnerer null:

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

Resultat:

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

Ikke-numeriske positioner

Hvis det første argument ikke er et tal, ELT() returnerer null :

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

Resultat:

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

Giver kun ét strengargument

Angivelse af et enkelt strengargument er gyldigt, selvom det første argument i dette tilfælde skal være 1 for at undgå at få null :

SELECT ELT(1, 'Red');

Resultat:

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

Nulstrenge

Strengargumenter kan være null uden at påvirke resultatet af de andre:

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

Resultat:

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

Selvom det angives et tal, der matcher null string-argument vil naturligvis returnere null :

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

Resultat:

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

Angivelse af en nulposition

Giver null da det første argument resulterer i null :

SELECT ELT(null, 'Red');

Resultat:

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

Enkelt argument

Angivelse af kun ét argument returnerer en fejl:

SELECT ELT(2);

Resultat:

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

Manglende argument

Kalder ELT() uden at sende nogen argumenter resulterer det i en fejl:

SELECT ELT();

Resultat:

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

  1. MySql forskel mellem to tidsstempler i dage?

  2. Importer SQL-fil til mysql

  3. Slet en databasepostkonto (SSMS)

  4. Bulk DELETE på SQL Server 2008 (Er der noget som Bulk Copy (bcp) til sletning af data?)