Oracle实际项目中遇到的函数应用

1.Decode函数
直接介绍如何用.
SELECT id,name
DECODE(flag,'1','True','0','false',NULL,'None','Invalid') 
             字段 | 判断字段值,显示具体含义          | 默认值
FROM UserInfo;

decode(m.totalcount,null,0,m.totalcount)
在进行报表统计的时候,有的字段无记录,这时候需要把统计置为0,如果有记录返回本身值.

2.Case语句用法.
select rownum as rn ,TERMINATEID,CMPTSCODE ,ERRLEVEL, ERRCODE ,ERRSTATE,
(CASE T.ERRSTATE WHEN '0' THEN '未发生故障' WHEN '1' THEN '有故障未申报' WHEN '2' THEN '有故障已申报' WHEN '3' THEN '已处理' END)
ERRSTATENAME,ERRTIME ,REMARK  from WX_CMPTSSTATE T
和Decode用法差不多,但是这个比较和IF-ELSE接近,符合大家的习惯写法.

3.树查询
--查询位置 011 以下的所有孩子
select * from ( select wk_pst.*,level from wk_pst
connect by prior pos_code =prt_pos_code
start with pos_code='011'
) a
where a.pos_code<>'011'

--伪列Level的应用
select * from ( select wk_pst.*,level as ll from wk_pst
connect by prior pos_code =prt_pos_code
start with pos_code='011'
) a
where a.pos_code<>'011' and a.ll =3
 

--倒着查,注意递归条件的写法,仅仅置换了一下而已,注意伪列的变化
select wk_pst.*,level as ll from wk_pst
connect by prior prt_pos_code=pos_code 
start with pos_code='111'
order by pos_code

4 SQL中的CONVERT Oracle中的to_Char和cast
SQL中的用法:
SELECT CONVERT(varchar(30),getdate(),101) now
Oracle:
SELECT to_char(SYSDATE,'yyyy-mm-dd hh24:mi:ss')
SELECT Cast(字段 as 类型)

转载于:https://www.cnblogs.com/chinaicm/archive/2008/07/14/1242646.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值