暂无图片
postgresql有goto的语法吗?
我来答
分享
暂无图片 匿名用户
postgresql有goto的语法吗?

postgresql有goto的语法吗?

我来答
添加附件
收藏
分享
问题补充
3条回答
默认
最新
李宏达
2022-11-18

没有

暂无图片 评论
暂无图片 有用 0
打赏 0
shunwahⓂ️
2022-11-18

postgresql不支持goto的语法
可在模拟GOTO语句的实现 (不过也不建议用或慎用)
PostgreSQL 的 PL/pgSQL并不支持 GOTO 跳转,但某些时候 GOTO 确实能给我们带来便利,伪代码:

i = 0;

label: goto_label
  i = i + 1
  if (i < 100)
    goto goto_label
复制

这种情况我们可以这样模拟:

i = 0;
<<goto_label>>
LOOP
  i = i + 1;

  IF i < 100 THEN
    CONTINUE goto_label;
  END IF;

  EXIT goto_label;
END LOOP;
复制

复杂状况,如果是嵌套式跳转,伪代码:

i = 0;
k = 0;

label: goto_label_i
  i = i + 1

  label: goto_label_k
    k = k + 1
    if (k < i)
      goto goto_label_k

  if (i < 100)
    goto goto_label_i
复制

如下:

i = 0;
k = 0;
<<goto_label_i>>
LOOP
  i = i + 1;

  <<goto_label_k>>
  LOOP
    k = k + 1;
    IF k < i THEN
      CONTINUE goto_label_k;
    END IF;

    EXIT goto_label_k;
  END LOOP goto_label_k;

  IF i < 100 THEN
    CONTINUE goto_label_i;
  END IF;

  EXIT goto_label_i;
END LOOP goto_label_i;
复制
暂无图片 评论
暂无图片 有用 0
打赏 0
2022-11-20

没有

暂无图片 评论
暂无图片 有用 1
打赏 0
回答交流
Markdown


请输入正文
提交
问题信息
请登录之后查看
邀请回答
暂无人订阅该标签,敬请期待~~
暂无图片墨值悬赏