2009-11-19 11 views
14

Warum dieses einfache Abfrage return 'ORA-00936: fehlender Ausdruck' (die Datenbank ist Oracle wie Sie sagen können):'NOT LIKE' in einer SQL-Abfrage

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

Ich fühle mich dumm, aber was ist Ich mache falsch?

Antwort

50

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

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

Die AND in der where-Klausel 2 Vollbedingungsausdrücke wie id NOT LIKE '1%' verbindet und nicht verwendet werden, können mehrere Werte aufzulisten, die die ID ist ‚nicht gefallen‘.

8

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

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

Sie haben die ID vor dem NOT verpasst; es muss angegeben werden.

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