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 を返す必要があります) の場合でも、どのように比較できますか?