web-dev-qa-db-fra.com

'NOT LIKE' dans une requête SQL

Pourquoi cette simple requête renvoie-t-elle 'ORA-00936: expression manquante' (la base de données est Oracle comme vous pouvez le voir):

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

Je me sens bête, mais qu'est-ce que je fais mal?

23
Ariod

Vous avez manqué le nom du champ id dans le deuxième NOT LIKE. Essayer:

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

AND dans la clause where joint 2 expressions de condition complète telles que id NOT LIKE '1%' et ne peut pas être utilisé pour répertorier plusieurs valeurs dont l'identifiant n'est pas similaire.

68
mikej

Vous devez spécifier la colonne dans les deux expressions.

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

Vous avez raté l'identifiant avant le NOT; il faut le préciser.

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