Das ist verwirrend für mich. Ich habe die folgende Abfrage:WHERE NULL-Klausel, die NULL-Werte zurückgibt
SELECT *
FROM table.contract
WHERE end_date IS NULL
AND LOWER(NAME) LIKE 'name'
OR LOWER(NAME) LIKE '%name1%'
OR LOWER(NAME) LIKE '%name2%'
wie es sein sollte, sollte es nur Zeilen zurück, wo die END_DATE NULL ist, aber ich bin immer Zeilen, die ein Datum in ihnen haben.
Der Datentyp ist DATE und der Datenstandard ist (null), also habe ich keine Ahnung, warum es auch einige Zeilen mit Daten zurückgibt. Habe ich gerade einen Hirnpupser? Es ist Freitag, also entschuldige ich mich, wenn ich etwas Einfaches vermisse.
Jede Hilfe würde sehr geschätzt werden!
EDIT: Ich bin ein ziemlich Idiot. Ich meine Klammer vergessen, sollte der Code wie folgt aussehen:
SELECT *
FROM table.contract
WHERE end_date IS NULL
AND (LOWER(NAME) LIKE 'name'
OR LOWER(NAME) LIKE '%name1%'
OR LOWER(NAME) LIKE '%name2%')
Sie könnten in Operatorpräzedenz interessiert sein – Mihai
Sie ein ODER haben in Ihrer Filterliste. Ich kann mir vorstellen, dass Sie irgendwo Klammern verwenden wollen. –
Ein Hinweis: Was ist der Unterschied zwischen 1 + 1 * 8 und (1 + 1) * 8? – dfundako