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

Funktionsweise von DIV in MariaDB

In MariaDB DIV führt eine ganzzahlige Division durch.

Es verwirft aus dem Divisionsergebnis alle Nachkommastellen rechts vom Dezimalkomma.

Syntax

Die Syntax lautet wie folgt:

DIV

Wobei die zu teilende Zahl links und die Zahl, durch die sie geteilt werden soll, rechts steht.

Beispiel

Hier ist ein Beispiel:

SELECT 100 DIV 2;

Ergebnis:

+-----------+
| 100 DIV 2 |
+-----------+
|        50 |
+-----------+

Teilergebnisse

Wie erwähnt, DIV verwirft aus dem Divisionsergebnis einen beliebigen Bruchteil rechts vom Dezimalkomma.

Beispiel:

SELECT 100 DIV 3;

Ergebnis:

+-----------+
| 100 DIV 3 |
+-----------+
|        33 |
+-----------+

Division durch Null

Wenn der ERROR_FOR_DIVISION_BY_ZERO SQL-Modus ist nicht gesetzt, Division durch Null gibt NULL zurück mit einer Warnung. Wenn gesetzt, gibt die Division durch Null einen Fehler zurück, wenn versucht wird, eine Spalte mit 1/0 zu aktualisieren, und gibt auch eine Warnung zurück.

Hier ist ein Beispiel für einen NULL Ergebnis:

SELECT 100 DIV 0;

Ergebnis:

+-----------+
| 100 DIV 0 |
+-----------+
|      NULL |
+-----------+
1 row in set, 1 warning (0.001 sec)

Sehen wir uns die Warnung an:

SHOW WARNINGS;

Ergebnis:

+---------+------+---------------+
| Level   | Code | Message       |
+---------+------+---------------+
| Warning | 1365 | Division by 0 |
+---------+------+---------------+

Ungültige Operanden

Die Verwendung ungültiger Operanden führt zu NULL mit einer Warnung:

SELECT 'One' DIV 'Two';

Ergebnis:

+-----------------+
| 'One' DIV 'Two' |
+-----------------+
|            NULL |
+-----------------+
1 row in set, 3 warnings (0.013 sec)

Überprüfen Sie die Warnungen:

SHOW WARNINGS;

Ergebnis:

+---------+------+------------------------------------------+
| Level   | Code | Message                                  |
+---------+------+------------------------------------------+
| Warning | 1292 | Truncated incorrect DECIMAL value: 'One' |
| Warning | 1292 | Truncated incorrect DECIMAL value: 'Two' |
| Warning | 1365 | Division by 0                            |
+---------+------+------------------------------------------+