Structured Query Language (SQL) ist eine Programmiersprache zum Speichern und Verarbeiten von Daten in relationalen Datenbanken. Eine relationale Datenbank ist eine tabellarische Datenbank, die Informationen in tabellarischer Form speichert, wobei Zeilen und Spalten verschiedene Datenattribute und die verschiedenen Beziehungen zwischen den Datenwerten darstellen. SQL-Anweisungen können zum Speichern, Aktualisieren, Löschen, Suchen und Abrufen von Daten aus einer Datenbank verwendet werden. SQL kann auch verwendet werden, um die Datenbankleistung aufrechtzuerhalten und zu verbessern. SQL ist der Industriestandard für die Arbeit mit relationalen Datenbanken. SQL kann zum Einfügen, Suchen, Aktualisieren und Löschen von Datensätzen in einer Datenbank verwendet werden. SQL kann eine Vielzahl anderer Aufgaben ausführen, einschließlich Datenbankoptimierung und-wartung. In diesem Artikel geht es darum, wie man den „Divide by Zero“-Fehler in SQL vermeidet.
Die strukturierte Abfragesprache (SQL) ist eine beliebte Abfragesprache, die in einer Vielzahl von Anwendungen verwendet wird. SQL wird von Datenanalysten und Entwicklern erlernt und verwendet, da es sich gut in verschiedene Programmiersprachen integrieren lässt. Sie können beispielsweise die Programmiersprache Java verwenden, um SQL-Abfragen einzubetten, um hochperformante Datenverarbeitungsanwendungen mit großen SQL-Datenbanksystemen wie Oracle oder MS SQL Server zu erstellen. SQL ist auch relativ einfach zu erlernen, da seine Anweisungen gängige englische Schlüsselwörter verwenden.
Erhalten Sie die Fehlermeldung „SQL-Server-Teilung durch Null-Fehler aufgetreten“? Wir können Ihnen helfen. Einer unserer Kunden ist kürzlich auf diesen Fehler gestoßen, weil es unmöglich ist, eine Zahl durch Null zu teilen. Es geht unendlich weiter. Aus verschiedenen Gründen führen wir Datenberechnungen in SQL Server durch. Wir müssen daran denken, einen „Divide by Zero“-Fehler zu behandeln, wenn wir eine Division in SQL durchführen. Auch wenn im Nenner keine Daten mit dem Wert Null vorhanden sind, müssen wir vorerst mit dem Fehler „Teilen durch Null“ umgehen, da es in Zukunft möglicherweise Daten mit dem Wert Null geben wird. Wir können damit umgehen, indem wir Null durch NULL ersetzen. Unten haben wir die Schritte erwähnt, um den Fehler „Dividieren durch Null“ in SQL zu behandeln.
5 Wege zur Vermeidung des’Divide by Zero’-Fehlers in SQL
Die SET ARITHIGNORE-Anweisung
Die SET ARITHIGNORE-Anweisung steuert, ob Fehlermeldungen werden von Überlauf-oder Division-durch-Null-Fehlern während einer Abfrage zurückgegeben:
SET ARITHABORT OFF;SET ANSI_WARNINGS OFF;
SET ARITHIGNORE ON;SELECT 1/0 AS Result_1;
SETZE ARITHIGNORE AUS;AUSWAHL 1/0 AS Ergebnis_2;
Wir setzen ARITHABORT und ANSI WARNINGS auf OFF, um zu verhindern, dass die Anweisung aufgrund des Fehlers abgebrochen wird, und es wird NULL zurückgegeben, wenn ein Division-durch-Null-Fehler auftritt. Es ist zu beachten, dass die Einstellung SET ARITHIGNORE nur Einfluss darauf hat, ob eine Fehlermeldung zurückgegeben wird. Unabhängig von dieser Einstellung gibt SQL Server NULL in einer Berechnung zurück, die einen Überlauf-oder Division-durch-Null-Fehler beinhaltet. Der Division-durch-Null-Fehler wird nicht zurückgegeben, wenn ARITHIGNORE aktiviert ist, wie im vorherigen Beispiel gezeigt. Wenn sie ausgeschaltet ist, wird die Fehlermeldung Division durch Null angezeigt.
Die SET ARITHABORT-Anweisung
Wenn während der Abfrageausführung ein Überlauf-oder Division-durch-Null-Fehler auftritt, wird die SET Die ARITHABORT-Anweisung beendet die Abfrage. Wir können es mit SET ANSI WARNINGS kombinieren, um NULL zurückzugeben, wenn ein Division-durch-Null-Fehler auftritt:
SET ARITHABORT OFF;SET ANSI_WARNINGS OFF;SELECT 20/0;
Microsoft empfiehlt, dass Sie ARITHABORT in Ihren Anmeldesitzungen immer aktiviert lassen, und dass das Deaktivieren negative Auswirkungen auf die Abfrageoptimierung haben kann, was zu Leistungsproblemen führt.
ARITHABORT ist aktiviert standardmäßig in einigen Clients (z. B. SQL Server Management Studio). Aus diesem Grund ist es unwahrscheinlich, dass beim Teilen durch Null der NULL-Wert zurückgegeben wird. Wenn Sie möchten, können Sie dieses Verhalten mit SET ARITHIGNORE ändern.
Verwenden Sie eine CASE-Anweisung
Eine andere Möglichkeit, dies zu tun, ist die Verwendung einer CASE-Anweisung:
DECLARE @n1 INT=20;DECLARE @n2 INT=0;
SELECT CASEWHEN @n2=0THEN NULLELSE @n1/@n2END
Füge die ISNULL() Funktion hinzu
In manchen Fällen ziehen Sie es vielleicht vor, einen anderen Wert als NULL zurückzugeben. In solchen Fällen können Sie das vorherige Beispiel an die Funktion ISNULL() übergeben:
SELECT ISNULL(1/NULLIF( 0, 0 ), 0);
Wir haben angegeben, dass Null zurückgegeben werden soll, wenn das Ergebnis NULL ist. Aber seien Sie vorsichtig. Die Rückgabe von Null kann in einigen Fällen unangemessen sein. Wenn Sie es beispielsweise mit Lagerbeständen zu tun haben, kann die Angabe von Null bedeuten, dass es keine Produkte gibt, was möglicherweise nicht der Fall ist.
Der NULLIF()-Ausdruck
Kurz Ein einfacher Weg, mit diesem Fehler umzugehen, ist die Verwendung des NULLIF()-Ausdrucks:
SELECT 1/NULLIF( 0, 0 );
Wenn die beiden angegebenen Ausdrücke denselben Wert haben, gibt NULLIF() NULL zurück. Wenn sich die beiden Ausdrücke unterscheiden, wird der erste zurückgegeben. Wenn wir also Null als zweiten Ausdruck verwenden, erhalten wir immer einen Nullwert, wenn der erste Ausdruck Null ist. Das Ergebnis der Division einer Zahl durch NULL ist NULL.
Tatsächlich gibt SQL Server NULL bei einem Division-durch-Null-Fehler zurück, aber wir sehen dies in den meisten Fällen wegen unserer ARITHABORT-und ANSI-WARNUNGEN nicht Einstellungen.
Abschließende Worte
Hier schließen wir also unseren Artikel über Methoden zur Vermeidung von „Division durch Null“-Fehlern in SQL ab. Structured Query Language (SQL) ist eine Programmiersprache, die verwendet wird, um relationale Datenbanken zu verwalten und verschiedene Operationen mit den darin enthaltenen Daten durchzuführen. SQL wurde in den 1970er Jahren entwickelt und wird heute nicht nur von Datenbankadministratoren, sondern auch von Entwicklern, die Datenintegrationsskripte schreiben, und von Datenanalysten, die analytische Abfragen einrichten und ausführen möchten, häufig verwendet.
Ich hoffe, Sie verstehen das Artikel, So vermeiden Sie den Fehler „Dividieren durch Null“ in SQL.
James Hogan ist leitender Mitarbeiter bei”TNGD”, wo er verschiedene Themen abdeckt, darunter Laptops, Gaming-Ausrüstung, Tastaturen, Speicher und mehr. Während dieser Zeit haben sie Hunderte von Laptops und Tausende von Zubehör evaluiert und eine Sammlung von viel zu vielen mechanischen Tastaturen für den eigenen Gebrauch aufgebaut.