Другим предикатом, который полезен для сравнения значений, которые могут содержать значение NULL, является предикат DISTINCT.Сравнение двух столбцов с использованием нормального равного сравнения (COL1 = COL2) будет истинным, если оба столбца содержат одинаковое ненулевое значение.Если оба столбца имеют нулевое значение, результат будет ложным, поскольку нулевое значение никогда не будет равно ни одному другому значению, даже другому нулевому значению.Используя предикат DISTINCT, нулевые значения считаются равными.Таким образом, COL1 НЕ ОТЛИЧАЕТСЯ от COL2 будет истинным, если оба столбца содержат одинаковое ненулевое значение, а также когда оба столбца имеют нулевое значение.
Обработка пустых значений в DB2
Это означает, что все операции сравнения будут ложными, потому что вы сравниваете неизвестное значение с чем-то.Поэтому независимо от того, какое сравнение вы используете (работает только операция IS NULL / IS NOT NULL!), Оно будет ложным.
Если вы хотите, чтобы запрос работал, вы должны использовать что-то вроде
SELECT *
FROM SOMESCHEMA.SOMETABLE
WHERE COALESCE(SYSDATE, TIMESTAMP_FORMAT('0001-01-01 23:59:59', 'YYYY-MM-DD HH24:MI:SS')) > @A