Chinaunix首页 | 论坛 | 博客
  • 博客访问: 103682630
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类: Oracle

2008-04-30 15:48:48

 

1、|| 和concat连接两个变量(或字符串),substr 载取字符:
㈠select ( '资金性质名称:'|| t.mk_name) as 资金性质名称 ,
(t.en_code|| t.en_name) as 预算单位 ,
substr(t.en_code,1,3) as 单位编码前三位 from vw_print_plan_voucher t

㈡select concat('0435-','4543534')||'转23' 某某某电话 from 表
0435-4543534转23
2、replace 替换字符:
select en_name from vw_print_plan_voucher
原数据
select replace(en_name, '梅河口','长春') as 代替 from vw_print_plan_voucher
替换后
3、ltrim 删除左边出现的字符串 /rtrim 删除右边出现的字符串
select en_name from vw_print_plan_voucher
原数据
select ltrim(rtrim(en_name,'局'),'梅河口') as en_name from vw_print_plan_voucher
删除数据后
4、upper 返回字符串,并将所有的字符大写

select upper(deploy_folder) as deploy_folde from sys_app

5、lower 返回字符串,并将所有的字符小写
6、nvl
语法 NVL(eExpression1, eExpression2)

参数
eExpression1, eExpression2

如果 eExpression1 的计算结果为 null 值,则 NVL( ) 返回 eExpression2。如果 eExpression1 的计算结果不是 null 值,则返回 eExpression1。eExpression1 和 eExpression2 可以是任意一种数据类型。如果 eExpression1 与 eExpression2 的结果皆为 null 值,则 NVL( ) 返回 .NULL.。

返回值类型
字符型、日期型、日期时间型、数值型、货币型、逻辑型或 null 值

说明

在不支持 null 值或 null 值无关紧要的情况下,可以使用 NVL( ) 来移去计算或操作中的 null 值。

例: nvl(substr(b.print_date,1,4),to_char(sysdate,'YYYY')) as 年,
nvl(substr(b.print_date,6,2),to_char(sysdate,'mm')) as 月,
nvl(substr(b.print_date,9,2),to_char(sysdate,'dd')) as 日,

b.print_date 数据库字段名 格式为:2008-01-01
to_char(sysdate,'YYYY') 系统时间年。

7、decode 用法。
㈠select t.billtype_code,decode(billtype_code,121102,1,121101,2) flag from vw_budget_voucher t

当blltype_code字段为121102时,flag字段为1;blltype_code字段为121101时,flag字段为2,默认值为空。
㈡select t.plan_money,t.pk_code, decode(substr(t.pk_code, 1, 6), '001001', t.plan_money, 0) as 直接支付计划额度 from vw_print_plan_voucher t

当pk_code字段的前六位是001001时,直接支付计划额度字段为t.plan_money字段中内容。默认值为0。
8、abs 取绝对值。
abs(pay_money) as 金额。
9、case……when……then……ent 相当于if……else……
select b.bill_no as 单号,
(case
when b.billtype_code = 344 and b.pay_money > 0 then
'授权支付划款凭证'
when b.billtype_code = 344 and b.pay_money < 0 then
'授权支付退款凭证'
when b.billtype_code = 342 and b.pay_money < 0 then
'直接支付退款凭证'
when b.billtype_code = 342 and b.pay_money > 0 then
'直接支付划款凭证'
end) as 表头支付方式 from vw_print_pay_agent_bill b
紫色字体可为变量。例:
(case
when pay_money > 0 then
clear_account_name
when pay_money < 0 then
agent_account_name
end) as 国库清算账户名称
当b.pay_money> 0时输出清算银行账户名称。当pay_money < 0时输出代理银行账户名称。
10.initcap 返回字符串并将字符串的第一个字母变为大写;
select initcap('meng') as 别名 from 表

11、instr(a,b,c,d) 默认为1在一个字符串中搜索指定的字符,返回发现指定的字符的位置;
a 被搜索的字符串
b 希望搜索的字符串
c 搜索的开始位置,默认为1
d 出现的位置,
select instr('meng ling yun','n',1,2) 别名 from vw_budget_voucher

12、length 返回字符串的长度;



13、lower 返回字符串,并将所有的字符小写

14、rpad 在列的右边添加字符 lpad 在列的左边添加字符
select rpad(lpad(ba_name,20,'&'),25,'*') 添加字符 from budget_voucher
不够字符则用字符来填满
15、ACOS 给出反余弦的值
16、ASIN 给出反正弦的值
17、ATAN 返回一个数字的反正切值
18、CEIL 返回大于或等于给出数字的最小整数
19、COS 返回一个给定数字的余弦
20、COSH 返回一个数字反余弦值
21、EXP 返回一个数字e的n次方根
22、FLOOR 对给定的数字取整数
23、LN 返回一个数字的对数值
24、LOG(n1,n2) 返回一个以n1为底n2的对数
25、MOD(n1,n2) 返回一个n1除以n2的余数
26、POWER 返回n1的n2次方根
27、ROUND和TRUNC 按照指定的精度进行舍入
28、SIGN 取数字n的符号,大于0返回1,小于0返回-1,等于0返回0
29、SIN 返回一个数字的正弦值

因为:http://megnlingyun.blog.ccidnet.com/blog-htm-itemid-240457-do-showone-type-blog-uid-35878.html

阅读(294) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~