Supportnet Computer
Planet of Tech

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?

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