sql >> Databasteknik >  >> RDS >> MariaDB

Hur SIGN() fungerar i MariaDB

I MariaDB, SIGN() är en inbyggd funktion som returnerar tecknet för dess argument som -1 , 0 eller 1 , beroende på om argumentet är negativt, noll eller positivt.

Syntax

Syntaxen ser ut så här:

SIGN(X)

Där X är värdet för vilket tecknet ska returneras.

Exempel 1

Här är ett exempel att visa:

SELECT SIGN(9);

Resultat:

+---------+
| SIGN(9) |
+---------+
|       1 |
+---------+

I det här exemplet är värdet positivt, och så 1 returneras.

Exempel 2

Här är några fler värden för att demonstrera möjliga utgångar:

SELECT 
    SIGN(8),
    SIGN(-8),
    SIGN(0);

Resultat:

+---------+----------+---------+
| SIGN(8) | SIGN(-8) | SIGN(0) |
+---------+----------+---------+
|       1 |       -1 |       0 |
+---------+----------+---------+

Icke-numeriska argument

Här är ett exempel på vad som händer när vi tillhandahåller icke-numeriska argument:

SELECT SIGN('Nine');

Resultat:

+--------------+
| SIGN('Nine') |
+--------------+
|            0 |
+--------------+
1 row in set, 1 warning (0.000 sec)

Låt oss se varningen:

SHOW WARNINGS;

Resultat:

+---------+------+------------------------------------------+
| Level   | Code | Message                                  |
+---------+------+------------------------------------------+
| Warning | 1292 | Truncated incorrect DOUBLE value: 'Nine' |
+---------+------+------------------------------------------+

Nollargument

SIGN() returnerar null om dess argument är null :

SELECT SIGN(null);

Resultat:

+------------+
| SIGN(null) |
+------------+
|       NULL |
+------------+

Felaktig parameterräkning

Anropar SIGN() med fel antal argument, eller utan några argument resulterar i ett fel:

SELECT SIGN();

Resultat:

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

Och:

SELECT SIGN(10, 2);

Resultat:

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

  1. Konvertera float till varchar i SQL Server utan vetenskaplig notation

  2. Vad är skillnaden mellan RANK och DENSE_RANK i SQL?

  3. Vad betyder SQL Select-symbolen || betyda?

  4. MySQL misslyckas på:mysql ERROR 1524 (HY000):Plugin 'auth_socket' är inte laddad