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;
第二种方法不太好;仅当返回的值不能为空值时,它才起作用