Supportnet / Forum / Datenbanken
Aufbau SQL-Statement zur Abfrage von 2 Werten in einer Spalte
Frage
Hallo!
Ich habe eine Basicfrage zu SQL. Bitte nicht lachen, beschäftigte mich erst seit kurzem mit SQL.
Ich möchte in der Tabelle Standort in der Spalte Ort alle Datensätze mit Ort 1 und 2 anzeigen lassen.
Über das Statement select * from standort where ort=´1´; bzw. select * from standort where ort=´2´; bekomme ich die Sätze angezeigt. Es muß doch aber möglich sein mit einem Statement sowohl ort1 als auch ort2 abfragen zu können.
Habe es mit select * from standort where ort=(´1´, ´2´); probiert. Bekomme da aber den Hinweis "Error: ORA-01797: this operator must be followed by ANY or ALL".
Antwort 1 von info1ohne
habe gerade nichts zum testen da, aber probier doch mal das = durch ein IN zu ersetzen.
Antwort 2 von Thorsten_2006
Hallo info1ohne!
Nach dem Ersetzen von = durch IN läuft das Statement ohne Probleme. Warum kann ich bei dieser Abfrage nicht =(´1´,´2´) verwenden?
Nach dem Ersetzen von = durch IN läuft das Statement ohne Probleme. Warum kann ich bei dieser Abfrage nicht =(´1´,´2´) verwenden?
Antwort 3 von mr_x_hacker
Nu, weil ´=´ eben ein Vergleichsoperator ist, der zwei Argumente (und nicht mehr oder weniger) miteinander vergleicht, und ´IN´ ein Mengenoperator, welcher mit Mengen arbeitet...
Übrigens, da Du schreibst, dass Du Anfänger bist: Man kann mehrere where-Bedingungen logisch verknüpfen, also würde bei Deinen 2 Orten auch gehen:
... WHERE ort=1 OR ort=2...
Es gibt auch noch AND, für Abfragen wie z.B.:
... WHERE ort=1 AND name=´hugo´
etc...
Ciao Sascha
Übrigens, da Du schreibst, dass Du Anfänger bist: Man kann mehrere where-Bedingungen logisch verknüpfen, also würde bei Deinen 2 Orten auch gehen:
... WHERE ort=1 OR ort=2...
Es gibt auch noch AND, für Abfragen wie z.B.:
... WHERE ort=1 AND name=´hugo´
etc...
Ciao Sascha

