webentwicklung-frage-antwort-db.com.de

'NOT LIKE' in einer SQL-Abfrage

Warum gibt diese einfache Abfrage 'ORA-00936: fehlender Ausdruck' zurück (die Datenbank ist, wie Sie sehen können, Oracle):

SELECT * FROM transactions WHERE id NOT LIKE '1%' AND NOT LIKE '2%'

Ich fühle mich albern, aber was mache ich falsch?

23
Ariod

Sie haben den Feldnamen id im zweiten NOT LIKE Verpasst. Versuchen:

SELECT * FROM transactions WHERE id NOT LIKE '1%' AND id NOT LIKE '2%'

Das AND in der where-Klausel verknüpft zwei vollständige Bedingungsausdrücke wie id NOT LIKE '1%' Und kann nicht verwendet werden, um mehrere Werte aufzulisten, denen die ID nicht entspricht.

68
mikej

Sie müssen die Spalte in beiden Ausdrücken angeben.

SELECT * FROM transactions WHERE id NOT LIKE '1%' AND id NOT LIKE '2%'
11
tvanfosson

Sie haben den Ausweis vor dem NICHT verpasst; es muss angegeben werden.

SELECT * FROM transactions WHERE id NOT LIKE '1%' AND id NOT LIKE '2%'
9
martin clayton