我想在oracle的sql中写一个像这样的语句
if (date1>=date2)
date1
else
date2
应该和decode很像吧,这是我的感觉
select decode(to_date('2008-05-01','yyyy-MM-dd')>=to_date('2008-03-01','yyyy-MM-dd'),to_date('2008-05-01','yyyy-MM-dd'),to_date('2008-03-01','yyyy-MM-dd')) from dual
要求和这很类似,只不过用decode sql语句错误
注:必须在sql中不是在存储过程中
如果很好解决另付200分。说到做到
if (date1>=date2)
date1
else
date2
应该和decode很像吧,这是我的感觉
select decode(to_date('2008-05-01','yyyy-MM-dd')>=to_date('2008-03-01','yyyy-MM-dd'),to_date('2008-05-01','yyyy-MM-dd'),to_date('2008-03-01','yyyy-MM-dd')) from dual
要求和这很类似,只不过用decode sql语句错误
注:必须在sql中不是在存储过程中
如果很好解决另付200分。说到做到
解决方案 »
- 数据库链接测试
- 这个问题困扰了我们组的很多人。不知道这边有没有人可以提些意见帮忙解决
- 用自定义函数实现行列转换
- 在Oracle中,如何将一张表中的long字段的数据插入到另一张表中的clob的字段中
- 无法从Windows上登录linux下的oracle9i oms server???
- 请问pl/sql developer怎么查看当前数据库所有的计划任务?
- vb链接Oracle数据库的问题:sql plus 没有问题 为什么用ado链接出错?
- 怎么可以获取数据库所在的服务器名?
- 请大伙推荐一个优秀的建库工具
- SQL 达人看看 这sql语句除了什么问题 有哪些
- IMP-00017: 由于 ORACLE 的 6550 错误
- 求机构权限管理设计思路
when
to_date('2008-05-01','yyyy-MM-dd')>=to_date('2008-03-01','yyyy-MM-dd')
then
to_date('2008-05-01','yyyy-MM-dd')
else
to_date('2008-03-01','yyyy-MM-dd')
end
from dual
to_date('2008-03-01', 'yyyy-MM-dd')),
1,
to_date('2008-05-01', 'yyyy-MM-dd'),
to_date('2008-03-01', 'yyyy-MM-dd'))
FROM dualdecode只支持比较值的相等和不相等,所以用sign(正数返回1,否则0)和1比较.
SQL> select case
2 when date1>=date2 then
3 date1
4 else
5 date2
6 end mydate
7 from mytable;MYDATE
-------------------
2008-07-30 17:25:57已选择 1 行。SQL>
对这种有> <什么的判断,用case when else end 便当,并且是标准sql语法
一般有> <比较就用case when
如果用decode
就用sign来判断