Not logged in. · Lost password · Register

SpeedyGonzalez
Member since Jul 2017
103 posts
Subject: Frage zu SQL Mengenoperatoren Exists und Any
Hallo zusammen,

bei ÜB07/08 1.4.2 lautet die Aufgabe: ,,Erstellen Sie mit Hilfe eines Mengenquantors eine Liste aller Mitarbeiter, die denselben Vornamen wie mindestens ein Versicherungsnehmer haben."

Was ist hier der unterschied zwischen Exists und Any?

SELECT id
FROM mitarbeiter
WHERE vorname = ANY (Select vorname from versicherungsnehmer);

SELECT id
FROM mitarbeiter
WHERE vorname = EXISTS (Select vorname from versicherungsnehmer);

Viele Grüße,
Speedy
Jonas S
Member since Jul 2016
94 posts
Bin kein Experte, ich denke aber EXISTS ist hier falsch, weil EXISTS einen boolschen Wert annimmt. Dein zweites Beispiel würde also gar nicht funktionieren, weil du vorname mit einem true/false vergleichst. Hier nochmal ausführlicher mit Beispiel: https://www.w3schools.com/sql/sql_exists.asp.
hjk
Member since Oct 2013
191 posts
In reply to post #1
Zunächst mal: Mengenquantor (ANY, ALL, SOME) != Existenzquantor (EXISTS)

Wie auch schon erwähnt: EXISTS liefert einen boolschen Wert (true oder false) zurück.

Die Anfrage mit EXISTS sollte also so ausschauen:

SELECT m.id
FROM mitarbeiter m
WHERE EXISTS (SELECT v.id FROM versicherungsnehmer v WHERE v.vorname = m.vorname);
(korrelierte Unteranfrage)
Marcel[Inf]
#faui2k15, GTI-Tutor a. D.
Member since Nov 2015
507 posts
ANY (und Synonym SOME) ist eine Abkürzung für genau diese korrelierte Unterabfrage. Beide sind ungefähr dasselbe wie IN, sie unterscheiden sich anscheinend nur beim Vergleich mit NULL-Werten: https://stackoverflow.com/questions/2298550/oracle-any-vs-in
This post was edited on 2018-04-17, 08:12 by Marcel[Inf].
Close Smaller – Larger + Reply to this post:
Verification code: VeriCode Please enter the word from the image into the text field below. (Type the letters only, lower case is okay.)
Smileys: :-) ;-) :-D :-p :blush: :cool: :rolleyes: :huh: :-/ <_< :-( :'( :#: :scared: 8-( :nuts: :-O
Special characters:
Go to forum
Datenschutz | Kontakt
Powered by the Unclassified NewsBoard software, 20150713-dev, © 2003-2011 by Yves Goergen