Steuert die Interpretation von NULL
On, Off
On
Diese Option ist in erster Linie zur Kompatibilität mit Transact-SQL (Adaptive Server Enterprise) implementiert. Die Option ansinull beeinflusst das Ergebnis von Vergleichsprädikaten mit NULL-Konstanten und wirkt sich auf Warnungen aus, die für Gruppenabfragen über NULL ausgegeben werden.
Wenn die ansinull-Option auf "On" gesetzt ist, wird dreiwertige ANSI-Logik für alle Vergleichsprädikate in einer WHERE- oder HAVING-Klausel oder in einer On-Bedingung verwendet. Ein Vergleich mit NULL und = oder != wird als "unbekannt" ausgewertet.
Wenn die ansinull-Option auf "Off" gesetzt ist, benutzt SQL Anywhere zweiwertige Logik für die folgenden vier Bedingungen:
Ausdruck = NULL
Ausdruck != NULL
Ausdruck = @var // @var ist eine Prozedurvariable oder Hostvariable
Ausdruck != @var
In jedem Fall wird das Prädikat als TRUE oder FALSE bewert, nie als UNKONWN. In diesen Vergleichen wird NULL als Sonderwert in jeder Domäne behandelt, und ein Gleichheitsvergleich (=) von zwei NULL-Werten wird als TRUE ausgeworfen. Beachten Sie, dass Ausdruck ein relativ einfacher Ausdruck sein muss, der nur Spalten, Variable und Literale referenziert. Unterabfragen und Funktionen sind nicht gestattet.
Wird die ansinull-Option auf "On" gesetzt, kann die Auswertung einer Aggregatfunktion mit Ausnahme von COUNT(*) für einen
Ausdruck, der mindestens einen NULL-Wert enthält, die Warnung Nullwert in Aggregatfunktion eliminiert
(SQLSTATE=01003) generieren. Wenn die ansinull-Option auf "Off" gesetzt ist, wird diese Warnung nicht angezeigt.
Wenn die ansinull-Option auf "Off" gesetzt wird, sind nur WHERE-, HAVING- oder ON-Prädikate in SELECT-, UPDATE-, DELETE- und INSERT-Anweisungen betroffen. Die Semantik von Vergleichen in einer CASE- oder IF-Anweisung oder in IF-Ausdrücken wird nicht beeinflusst.
In Adaptive Server Enterprise 12.5 wurde für LIKE-Prädikate mit einer NULL-Musterzeichenfolge eine Änderung eingeführt, wenn die ansinull-Option auf "Off" gesetzt ist. In SQL Anywhere bleiben LIKE-Prädikate durch die Einstellung von 'ansinull' unbeeinflusst.
Kommentieren Sie diese Seite in DocCommentXchange. Senden Sie uns Feedback über diese Seite via E-Mail. |
Copyright © 2009, iAnywhere Solutions, Inc. - SQL Anywhere 11.0.1 |