Oracle-Minus-Verwendung
„Minus“ wird direkt ins Chinesische als „Subtraktion“ übersetzt. Es wird auch für Subtraktionsoperationen in Oracle verwendet, aber es ist nicht die Subtraktion von Zahlen im herkömmlichen Sinne, sondern Is die Subtraktion der Abfrageergebnismenge. A minus B bedeutet das Ergebnis des Entfernens aller in Ergebnismenge B enthaltenen Datensätze aus Ergebnismenge A, d. h. Datensätze, die in A, aber nicht in B vorhanden sind. Der Algorithmus ähnelt der Funktion „removeAll()“ von Collection in Java, das heißt, A minus B entfernt nur die Schnittmenge von A und B. Es wird keine Operation für Datensätze ausgeführt, die in B, aber nicht in A vorhanden sind, und es wird keine Ausnahme gemacht geworfen.
Oracles Minus wird spaltenweise verglichen, daher ist die Voraussetzung für A mit Minus B, dass die Ergebnismenge A und die Ergebnismenge B die gleiche Anzahl von Spalten haben müssen und die Spalten mit dem gleichen Spaltenindex den gleichen haben Datentyp. Darüber hinaus dedupliziert Oracle die Ergebnismenge nach Minus. Das heißt, wenn in A ursprünglich mehrere identische Datensätze vorhanden sind, bleibt nach A minus B nur ein entsprechender Datensatz übrig. Einzelheiten finden Sie im folgenden Beispiel.
Schauen wir uns ein Beispiel für die praktische Anwendung von Minus an. Angenommen, wir haben eine Benutzertabelle t_user, die die folgenden Datensatzdaten enthält:
Dann:
(1) Das Ergebnis von „Wähle die ID von t_user aus, wobei die ID<6 minus wähle die ID aus dem t_Benutzer aus, wobei die ID zwischen 3 und 7 liegt“ lautet:
(2) Das Ergebnis von „select age,level_no from t_user where id<8 minus select age,level_no from t_user where level=3“ ist:
Ein solches Ergebnis wird angezeigt , vielleicht fühlst du dich vielleicht etwas seltsam, warum ist das so? Lassen Sie es uns analysieren. Zuerst sieht das Ergebnis von „select age,level_no from t_user where id<8“ so aus:
Dann „select age,level_no from t_user where level=3“. " Das Ergebnis wird so aussehen:
Dann sollte direkt nach A minus B das Ergebnis sein:
Zu diesem Zeitpunkt können wir sehen, dass die Ergebnismenge doppelte Datensätze enthält, und nach der Deduplizierung werden die oben genannten tatsächlichen Ergebnisse erhalten. Tatsächlich ist dies leicht zu verstehen, da die Funktion von Minus darin besteht, Datensätze zu finden, die in A, aber nicht in B vorhanden sind.
Die obigen Beispiele beziehen sich alle auf eine einzelne Tabelle. Offensichtlich bietet die Verwendung von Minus zum Ausführen einzelner Tabellenoperationen keinen Vorteil. Es wird normalerweise verwendet, um herauszufinden, dass bestimmte Felder in Tabelle A nicht in Tabelle B vorhanden sind . Entsprechend der aufgezeichneten Situation. Zum Beispiel haben wir eine andere Tabelle t_user2, die dieselbe Tabellenstruktur wie die Tabelle t_user hat. Dann kann die folgende Anweisung die Datensätze finden, die in der Tabelle t_user2 vorhanden sind, außer der ID.
select no,name,age,level_no from t_user minus select no,name,age,level_no from t_user2;
Vielen Dank fürs Lesen, ich hoffe, es kann Ihnen helfen, vielen Dank für Ihre Unterstützung dieser Website!
Ausführlichere Erläuterungen zur Verwendung von Oracle minus und Anwendungsbeispiele finden Sie auf der chinesischen PHP-Website!