Postgresql函数返回整数或null

Postgresql函数返回整数或null,postgresql,Postgresql,我有一个类似这样的函数,用于检查适当的帐户类型: 创建或替换函数acc_为exclusiveacc_无整数,acc_type char返回整数作为$$ 开始 返回从科目号=科目号,科目类型=科目类型的科目中选择1; 终止 $$语言plpgsql; 返回类型为整数,如果没有找到记录,则返回类型将改为NULL。这有意义吗?或者我需要以某种方式明确声明返回类型将是整数或null?您可以在此处使用EXISTS逻辑: CREATE OR REPLACE FUNCTION acc_is_exclusive(

我有一个类似这样的函数,用于检查适当的帐户类型:

创建或替换函数acc_为exclusiveacc_无整数,acc_type char返回整数作为$$ 开始 返回从科目号=科目号,科目类型=科目类型的科目中选择1; 终止 $$语言plpgsql; 返回类型为整数,如果没有找到记录,则返回类型将改为NULL。这有意义吗?或者我需要以某种方式明确声明返回类型将是整数或null?

您可以在此处使用EXISTS逻辑:

CREATE OR REPLACE FUNCTION acc_is_exclusive(acc_no integer, acc_type char) RETURNS boolean AS $$
    BEGIN
        RETURN EXISTS (SELECT FROM account WHERE account_no = acc_no AND account_type = acc_type);
    END;
$$ LANGUAGE plpgsql;
这将返回true或false,具体取决于是否能找到匹配的记录。

您可以在此处使用EXISTS逻辑:

CREATE OR REPLACE FUNCTION acc_is_exclusive(acc_no integer, acc_type char) RETURNS boolean AS $$
    BEGIN
        RETURN EXISTS (SELECT FROM account WHERE account_no = acc_no AND account_type = acc_type);
    END;
$$ LANGUAGE plpgsql;
这将返回true或false,具体取决于是否能找到匹配的记录。

SQL标准规定:

每个数据类型都包含一个特殊的值,称为null值,有时用关键字null表示

因此,不用说,您可以将NULL作为整数结果返回,因为NULL是任何数据类型的有效值。

SQL标准规定:

每个数据类型都包含一个特殊的值,称为null值,有时用关键字null表示


所以不用说,您可以将NULL作为整数结果返回,因为NULL对于任何数据类型都是有效的值。

但是返回类型将是布尔值吗?非整数isuppose@xxx_coder_noscope是的,你说得对,谢谢你的更正。但是返回类型是布尔型的吗?非整数isuppose@xxx_coder_noscope是的,你说得对,谢谢你的更正。