常用的ODI映射与过滤命令

一、映射

1. 某个字段与某个字段加起来一起,有时需要中间连接符号-/_。

某字段 || '-' || 某字段

2. 当字段或字段的运算的值等于值1时,该函数返回值2,否则返回值3。

decode(条件,值,返回值1,值2,返回值2,...值n,返回值n,缺省值)

3. 取字符串中的字符,除去数字和字母。

replace(translate(DZ_T_XF_WX_XFMX.MCH_NAME,'0123456789qwertyuioplkjhgfdsazxcvbnmQWERTYUIOPLKJHGFDSAZXCVBNM_',' '),' ','')

4. 类型转换。

to_char(V_KP_DATA.PURCHASE_DATE, 'yyyy/mm/dd')

to_char(sysdate, 'yyyy-mm-dd')

5. 生成不重复的数据,当数据库某字段设置为唯一,则可用次生成(比如主键)。

sys_guid()

6. 选择。

case  replace(V_JK_XSXXB.PYCC,' ','')
when '专科-扩招-幼师' then '10'
when '专科-扩招-学历提升专项' then '11'
else ''
end

或者

case 
    when T_KY_JLCG.ZLLX='实用新型'  then '2'
    when T_KY_JLCG.ZLLX='外观设计'  then '3'
   else ''
end

7.abs取绝对值。

abs(T_YKT_GRJY.JYJE/100)

8. 截取某某长度,从a开始,长度为b。

substr(__, a ,b )

9.

'20'||substr(pay_time,8,2)||'-'||substr(pay_time,4,2)||'-'||substr(pay_time,4,2)||' '||substr(pay_time,11,2)||':'||substr(pay_time,14,2)||':'||substr(pay_time,17,2)
from  T_YKT_WXXFJL 
where pay_time like '%上午%'
'20'||substr(pay_time,8,2)||'-'||substr(pay_time,4,2)||'-'||substr(pay_time,4,2)||' '||((substr(pay_time,11,2))+12)||':'||substr(pay_time,14,2)||':'||substr(pay_time,17,2)
from  T_YKT_WXXFJL 
where pay_time like '%下午%'

10.

<%=snpRef.getObjectName("L", "T_YKT_GRJY_SEQ", "D")%>.NEXTVAL

二、过滤器

1. 某值为空或不为空。

某字段 is null  或者  某字段 is not null

2. 限定某字段数值大小。

length(某字段) < 某值

3. exists表示()内子查询语句返回结果不为空说明where条件成立就会执行主sql语句,如果为空就表示where条件不成立,sql语句就不会执行。

exists(select 1 from 某表 where __=__)

例子:

exists  (select 1 from T_BZKS where t_bzks.dwdm=t_xx_dw.dwdm )

4. 截取某某长度,从a开始,长度为b。

substr(某字段, a ,b )
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值