In so manchem
DBMS kann man Operatoren auch selbst definieren.
Dort könnteste du dir dann auch einen "kurzen" Operator für Vergleiche mit NULL und EMPTY selbst bauen, wenn/da es sowas oft nicht "vernünftig" gibt,
denn mal ganz im Ernst, aber wer sich
IS NOT DISTINCT FROM
ausgedacht hat ... k.A. was der da geraucht hatte.
SQL-Code:
CREATE OR REPLACE FUNCTION compare_with_null(value_a anyelement, value_b anyelement) RETURNS boolean
AS $$
SELECT nullif(value_a, '
') =
nullif(value_b, '
')
$$ LANGUAGE
SQL IMMUTABLE;
CREATE OPERATOR ~= (LEFTARG=anyelement, RIGHTARG=anyelement,
PROCEDURE=compare_with_null);
SELECT ADRESSID
FROM ADRESSEN
WHERE VORNAME = :VORNAME
AND NACHNAME = :NACHNAME
AND STRASSE ~= :STRASSE
AND PLZ ~= :PLZ
AND ORT ~= :ORT