如果列A得值等于列B,返回A,否则返回B,可以使用DECODE函数
SELECT DECODE(A,B,A,B)
DECODE(条件,值1,翻译值1,值2,翻译值2,...值n,翻译值n,缺省值)该函数的含义如下:
IF 条件=值1 THEN
RETURN(翻译值1)
ELSIF 条件=值2 THEN
RETURN(翻译值2)
......
ELSIF 条件=值n THEN
RETURN(翻译值n)ELSE
RETURN(缺省值)
END IF
但是大于或小于时该函数不可以,可以自己写一个函数来实现
SELECT DECODE(A,B,A,B)
DECODE(条件,值1,翻译值1,值2,翻译值2,...值n,翻译值n,缺省值)该函数的含义如下:
IF 条件=值1 THEN
RETURN(翻译值1)
ELSIF 条件=值2 THEN
RETURN(翻译值2)
......
ELSIF 条件=值n THEN
RETURN(翻译值n)ELSE
RETURN(缺省值)
END IF
但是大于或小于时该函数不可以,可以自己写一个函数来实现
解决方案 »
- oracle 包的问题
- 日志文件损坏,system表空间存在一致性问题,怎么办啊!!!
- oracle
- System.Data.OracleClient requires Oracle client software version 8.1.7 or greater.
- 初级问题120等着各位大侠来拿呢!
- 还是在存储过程里调用另外一个存储过程的问题!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
- 高手请进:请问我在GBK字符集下做的备份能恢复到UNICODE字符集的数据库中吗?
- 请问我想让SQL Server与Oracle中的指定表的指定字段保持同步,是否可行?应该如何做?
- oracle插入数据
- 如何转移数据库实例
- 这句SQL怎么不行?
- 使用sqlldr 在oracle7和oracle8i之间导数据时碰到日期格式的问题?
(CASE
WHEN HIREDATE < SYSDATE - TO_YMINTERVAL(’05-00’) THEN SAL * 1.25
ELSE SAL * .9
END ) AS NEW_SAL
FROM EMP;
----------------------------
3SQL> select decode(sign(2-2),1,3,-1,2,0) from dual;DECODE(SIGN(2-2),1,3,-1,2,0)
----------------------------
0SQL> select decode(sign(1-2),1,3,-1,2,0) from dual;DECODE(SIGN(1-2),1,3,-1,2,0)
----------------------------
2
when name1 > name2 then name1
else name2
end as name
from tbok了!谢谢大家