3 つのテキスト値が等しいかどうかを比較するストアド関数があります。これらのテキスト値の一部は null である可能性があり、その場合、比較は false 値を返す必要があります。
CREATE OR REPLACE FUNCTION "subject_check_if_subjectName_exists"(name1IN text, name2IN text, name3IN text, name4IN text)
returns boolean as
$$
declare
    results boolean;
    subjectList record;
begin
    results = false;
    for subjectList in select name1, name2, name3, name4 from subject loop
    if (name1In = subjectList.name1) and (name2In = subjectList.name2) and (name3In = subjectList.name3) and (name4In = subjectList.name4)
      then
        results = true;
        EXIT; -- exit out of loop
    end if;
    end loop;
    return results;
end;
$$ language 'plpgsql';
name4IN と subjectList.name4 の両方が null で、他のすべての値が等しい場合、関数は真の値を返しません。これらのテキスト値が null (null = null は true を返す必要があります) の場合でも、どのように比較できますか?