sql语句 根据条件分支执行--执行sql语句中的一部分(oracle)
2014-04-10 10:30
741 查看
预热 case when 用法:
(一):select case when 1=1 then 1 end from dual;
结果:
![](http://img.my.csdn.net/uploads/201302/04/1359949265_3815.png)
(二):
表结构:
![](http://img.my.csdn.net/uploads/201302/04/1359949895_4805.png)
select (case when xm='gao' then '姓高的销售额' when xm= 'zhu' then '姓朱的销售额' end ), sal from table3;
结果:
![](http://img.my.csdn.net/uploads/201302/04/1359949939_5434.png)
---------------------------------------------------------------------------------------预热结束-----------------------------------------------------------------------------------------------------------------------------------
表结构如下:
![](http://img.my.csdn.net/uploads/201302/04/1359948404_1284.png)
(一)使用case when 实现
select * from table3 where
(select case when '&a'=1 then
(select 1 from dual where xm = 'gao')
when '&a'=2 then
(select 1 from dual where sal = '55.55')
end from dual)=1;
执行输入参数 1 结果 :
![](http://img.my.csdn.net/uploads/201302/04/1359950310_9094.png)
输入参数 2 结果:
![](http://img.my.csdn.net/uploads/201302/04/1359955438_9258.png)
(二) 使用decode 实现
select * from table3 where decode('&a',1,decode(xm,'gao',1),2,decode(sal,'55.55',1)) = 1;
结果同上
(一):select case when 1=1 then 1 end from dual;
结果:
![](http://img.my.csdn.net/uploads/201302/04/1359949265_3815.png)
(二):
表结构:
![](http://img.my.csdn.net/uploads/201302/04/1359949895_4805.png)
select (case when xm='gao' then '姓高的销售额' when xm= 'zhu' then '姓朱的销售额' end ), sal from table3;
结果:
![](http://img.my.csdn.net/uploads/201302/04/1359949939_5434.png)
---------------------------------------------------------------------------------------预热结束-----------------------------------------------------------------------------------------------------------------------------------
表结构如下:
![](http://img.my.csdn.net/uploads/201302/04/1359948404_1284.png)
(一)使用case when 实现
select * from table3 where
(select case when '&a'=1 then
(select 1 from dual where xm = 'gao')
when '&a'=2 then
(select 1 from dual where sal = '55.55')
end from dual)=1;
执行输入参数 1 结果 :
![](http://img.my.csdn.net/uploads/201302/04/1359950310_9094.png)
输入参数 2 结果:
![](http://img.my.csdn.net/uploads/201302/04/1359955438_9258.png)
(二) 使用decode 实现
select * from table3 where decode('&a',1,decode(xm,'gao',1),2,decode(sal,'55.55',1)) = 1;
结果同上
相关文章推荐
- oracleday19(复合类型 游标变量 pl/sql 进阶 条件分支语句 loop )
- 根据条件编辑SQL语句,执行回调函数查询
- sql语句中如何根据不同的条件,执行不同的where条件
- Oracle 如何根据动态性能视图来查看某条SQL语句的执行计划
- mybatis 动态sql 根据条件执行相应的语句
- oracle的SQL语句中同一函数执行的时间问题
- 优化sql语句提高oracle执行效率
- 查询Oracle正在执行和执行过的SQL语句
- 设置mysql在执行没where条件的sql语句时提醒
- Oracle [PL/SQL]中的条件语句
- 在Oracle中不通过存储过程一次执行多条SQL语句Oracle PL/SQL
- Oracle sql语句执行过程图文分析
- 查询Oracle中正在执行和执行过的SQL语句
- oracle根据pid查询出正在执行的执行语句
- 将oracle SQL语句执行结果导入文本文件
- oracle sql 语句中where条件中 1=1 是什么意思
- oracle中SQL语句执行与优化
- 关于执行Oracle下Sql语句中遇到的特殊字符问题解决办法。
- Oracle采用存储过程执行sql语句,将查询到的数据导出到EXCEL中
- sql语句根据特定条件改变排序及效率测试