Postgresql 如何在查询中检查无数据选择

Postgresql 如何在查询中检查无数据选择,postgresql,sqlcode,Postgresql,Sqlcode,我使用一个查询来选择函数中的一些数据,但是如果我没有从中获取数据,我需要运行另一个查询。 我现在的做法是: SELECT 1 INTO flag FROM "schema"."table" WHERE col1 = variable FETCH FIRST 1 ROW ONLY; if(flag = 1) then SELECT "col1"

我使用一个查询来选择函数中的一些数据,但是如果我没有从中获取数据,我需要运行另一个查询。 我现在的做法是:

SELECT 1 INTO flag
          FROM   "schema"."table"
          WHERE col1 = variable
        FETCH FIRST 1 ROW ONLY;
if(flag = 1) then
  SELECT    "col1"                                             
            INTO    col1_2
            FROM    "schema"."table"                                                
          WHERE col1 = variable;
end if;
但是这使得我的函数太复杂了,因为我必须多次运行这个部分,因为我有很多这样的条件和查询

是否有任何方法可以使用sqlcode,因为我知道sqlcode用于成功运行不返回任何行的查询是100。大概是这样的:

SELECT    "col1"                                             
                INTO    col1_2
                FROM    "schema"."table"                                                
              WHERE col1 = variable;
if(SQLCODE=100)
   --run next set of queries
end if;

您可以使用找到的特殊变量

SELECT ... INTO col1_2 ...
IF NOT FOUND THEN
   ...
END IF;
或者,如果查询未返回任何行,则可以依赖以下事实:变量将为
NULL

SELECT .. INTO col1_2 ...
IF col1_2 IS NULL THEN
   ...
END IF;
第二种方法不太好;仅当返回的值不能为空值时,它才起作用