24SQL
create or replace function f_op (p_n1 number , p_op varchar2 , p_n2 number ) return number
as
begin
return case when p_op = '+' then p_n1 + p_n2
when p_op = '-' then p_n1 - p_n2
when p_op = '*' then p_n1 * p_n2
when p_op = '/' and p_n2<> 0 then p_n1 / p_n2
else null
end ;
end f_op;
/
create or replace procedure pro_241(p1 number , p2 number , p3 number , p4 number ) as
r_result number default 0 ;
begin
for r in (
with t_num as
( select 1 id ,p1 as n from dual
union
select 2 id ,p2 as n from dual
union
select 3 id ,p3 as n from dual
union
select 4 id ,p4 as n from dual),
t_op as
( select '+' as o from dual
union
select '-' as o from dual
union
select '*' as o from dual
union
select '/' as o from dual)
select distinct
a.n as a,
o1.o as o1,
b.n as b,
o2.o as o2,
c.n as c,
o3.o as o3,
d.n as d
from t_num a, t_num b, t_num c, t_num d,
t_op o1, t_op o2, t_op o3
where a.id not in (b.id, c.id, d.id)
and b.id not in (c.id, d.id)
and c.id <> d.id) loop
r_result := f_op(f_op(f_op(r.a,r.o1,r.b),r.o2,r.c),r.o3,r.d);
if r_result=12 then
dbms_output.put_line( '((' ||r.a||r.o1||r.b|| ')' ||r.o2||r.c|| ')' ||r.o3||r.d);
end if ; --((a b) c) d
r_result := f_op(f_op(r.a,r.o1,r.b),r.o2,f_op(r.c,r.o3,r.d));
if r_result=12 then
dbms_output.put_line( '(' ||r.a||r.o1||r.b|| ')' ||r.o2|| '(' ||r.c||r.o3||r.d|| ')' );
end if ; --(a b) (c d)
end loop ;
end ;
/
set serveroutput on;
exec pro_241( 32 , 13 , 3 , 17 );
24SQL的更多相关文章
- 30种oracle常见的等待事件说明
1Buffer busy waits从本质上讲,这个等待事件的产生仅说明了一个会话在等待一个Buffer(数据块),但是导致这个现象的原因却有很多种.常见的两种是: 当一个会话视图修改一个数据块,但这 ...
- Oracle常见等待事件
1Buffer busy waits从本质上讲,这个等待事件的产生仅说明了一个会话在等待一个Buffer(数据块),但是导致这个现象的原因却有很多种.常见的两种是: · 当一个会话视图 ...
随机推荐
- jquery懒加载jquery.lazyload.js
Lazy Load 是一个用 JavaScript 编写的 jQuery 插件. 它可以延迟加载长页面中的图片. 在浏览器可视区域外的图片不会被载入, 直到用户将页面滚动到它们所在的位置. 这与图片预 ...
- linux io stack
- XSLT简介
什么是? http://www.w3school.com.cn/xsl/xsl_intro.asp XSLT 是一种用于将 XML 文档转换为 XHTML 文档或其他 XML 文档的语言. XPath ...
- RDIFramework.NET ━ .NET快速信息化系统开发框架 V3.0 版新增消息管理
在V3.0版本的Web(Mvc.WebForm)与WinForm中我们新增了“消息管理”模块.“消息管理”模块是对框架的所有消息进行管理.通过左侧的消息分类可以查看所选分类的所有消息列表.在主界面上我 ...
- 利用php比较精确的统计在线人数的办法
利用php比较精确的统计在线人数的办法,注意这里所说的精确是指个数,如果需要精确在时间上,则需要根据实际情况调整代码中的有效时间.(自己没有写,从别人那拿过来的,先放着然后再研究)<?php// ...
- C# 提供两种切割圆形图片的方式
效果: private void Form1_Load(object sender, EventArgs e) { string file =System.IO.Path.Combine(Enviro ...
- MS SQL 两种分页
------ row number ---------- ------ row number ---------- declare @pageSize int,@pageIndex int ; sel ...
- VM环境下,快速复制多个SQLServer实例,环境调整
--windows机器名 sysprep.exe 勾选通用,并关机 --实例名 SELECT @@SERVERNAME ,serverproperty('servername') if server ...
- 【笔记】js parentsNode,lastChild,appendChild,insertBefore,nextSibling的意义及运用
这几天看书看到这几个属性做几个笔记 parentNode:顾名思义,就是获取某元素的父元素等同于jq的parent(). *注意一下,在调用parentNode 方法的时候 调用的对象必须是用ID 或 ...
- Scala基础语法
/* 学慕课网上<Scala程序设计>课程跟着敲的代码 作为代码参考也是很好的 在scala_ide.org上下载eclipse IDE,新建一个worksheet,就可以像在xcode的 ...