首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如果没有返回任何结果,如何将变量赋值为'null‘?

如果没有返回任何结果,如何将变量赋值为'null‘?
EN

Stack Overflow用户
提问于 2018-07-27 04:41:37
回答 2查看 55关注 0票数 0

当前有一个名为VALUE的变量,需要为它赋一个数值,以便存储的proc不会出错。目前在数据库中没有每小时的数据,所以当它到达前一小时没有数据的点时,整个过程就会出错(因为没有返回任何数据)。如果没有返回结果,有没有一种方法可以将null赋值给VALUE?下面是我的“SELECT INTO”代码:

SELECT VALUE
  INTO v_PRIOR__VALUE
  FROM VALUE V
 WHERE CODE = rCode
   AND TIME = rTIME - 1/24;
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-07-27 04:46:49

或者,您可以实际处理这样的情况:

declare
  v_prior__value value.value%type;
begin
  SELECT VALUE
    INTO v_PRIOR__VALUE
    FROM VALUE V
   WHERE CODE = rCode
     AND TIME = rTIME - 1/24;
exception
  when no_data_found then
    null; -- v_prior_Value will remain NULL, as declared in the DECLARE section

  when too_many_rows then
    v_prior_Value := -1;  -- this is just an example; you'd handle it the way you want
end;
票数 4
EN

Stack Overflow用户

发布于 2018-07-27 04:42:57

如果您期望0行或1行,那么我认为最简单的方法是聚合:

SELECT MAX(VALUE)
INTO v_PRIOR__VALUE
FROM VALUE V
WHERE CODE = rCode AND TIME = rTIME - 1/24;

没有GROUP BY (或HAVING)的聚合查询始终只返回一行。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51547218

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档