有条件返回几行的过程

发布于 2025-01-18 06:58:48 字数 395 浏览 1 评论 0原文

我有一个程序将返回一个数字作为输出参数(我们称之为 out_parameter_result)。 根据这个数字我需要有条件地添加行。

伪代码示例(不介意条件):

if(bitand(out_parameter_result, 1) = 1)
   result.add(select 1 from dual)
if(bitand(out_parameter_result, 2) = 2)
   result.add(select 2 from dual)
if(bitand(out_parameter_result, 4) = 4)
   result.add(select 4 from dual)
return cursor(or resultset) which will contain 1,2,4.

I have a procedure which will return a number as out parameter(let's call it out_parameter_result).
According to this number I need to add rows conditionally.

Pseudocode example(don't mind about conditions):

if(bitand(out_parameter_result, 1) = 1)
   result.add(select 1 from dual)
if(bitand(out_parameter_result, 2) = 2)
   result.add(select 2 from dual)
if(bitand(out_parameter_result, 4) = 4)
   result.add(select 4 from dual)
return cursor(or resultset) which will contain 1,2,4.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

云裳 2025-01-25 06:58:48

与原来的不同,但在我的情况下工作得很好。

SELECT * FROM TABLE WHERE id IN (
       DECODE(bitand(v_info, 1), 1, 0, 1), 
       DECODE(bitand(v_info, 2), 2, 0, 2), 
       DECODE(bitand(v_info, 4), 4, 0, 3)

Different from original, but works fine in my case.

SELECT * FROM TABLE WHERE id IN (
       DECODE(bitand(v_info, 1), 1, 0, 1), 
       DECODE(bitand(v_info, 2), 2, 0, 2), 
       DECODE(bitand(v_info, 4), 4, 0, 3)
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文