Вы могли бы упростить это.
SELECT W.*
FROM WORK W
JOIN WORKSHOP WS ON W.ID = WS.WORKID
WHERE (W.COLUMN1 IS NOT NULL OR W.COLUMN2 != -1 OR W.ID != -1)
Или обратный положительный.
SELECT W.*
FROM WORK W
JOIN WORKSHOP WS ON W.ID = WS.WORKID
WHERE NOT (W.COLUMN1 IS NULL AND W.COLUMN2 = -1 AND W.ID = -1)
Обратите внимание, что WHERE W.COLUMN2 != -1
не выберет W.COLUMN2
, которые имеют значение NULL.
Так что WHERE (W.COLUMN2 IS NOT NULL AND W.COLUMN2 != -1)
возвращает так же, как WHERE W.COLUMN2 != -1