我有一个存储函数,它应该比较三个文本值是否相等。其中一些文本值可能为空,如果是,则比较应返回假值。
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 应该返回 true),我如何比较这些文本值?