易截截图软件、单文件、免安装、纯绿色、仅160KB

Oracle 百分比

日前遇到一个问题,需要对在Oracle数据库中查询出来的数值进行比率的计算。类似于如下的SQL:
Select Round((discount/Amount),2) from dual;
这样算出来的数字可以满足绝大部分的需求。但是对于不到1的数字,问题出来了......显示的类似于 .45样子的数据。0.45前面的0不见了。
以下总结了两种方法来解决缺0的问题。
第一种解决方案:
      SELECT DECODE (TRUNC (1/100),0, REPLACE (1/100, ''.'', ''0.''),TO_CHAR (1/100))
        from DUAL;
大家只要在1/100的地方替换成自己需要的百分数就可以了。
第二种解决方案:
SELECT RTrim(To_Char(1/100,''FM99999999990.9999''),''.'') from dual;
替换方式同上。
两种方式的比较:
第一种公式比较复杂,但可以处理通用的数值。
第二种看起来简单,不过格式化的值的位数一定要大于计算的位数才行。比如 SELECT RTrim(To_Char(200,''FM90.9999'') ,''.'') from dual; 显示的就是########,因为超过格式化的范围了。
不过一般来说我还是倾向于使用第二种,毕竟放宽一点就可以了^_^。
不知道谁还知道有更加好或者规范的写法?
文章出处:DIY部落(http://www.diybl.com/course/7_databases/oracle/oraclejs/2008224/100982.html)
SELECT RTrim(To_Char((1/3)*100,'FM99999999990.9999'),'.')||'%' from dual; 这样获得的是33.3333%
SELECT substr(RTrim(To_Char((1/3)*100,'FM99999999990.9999'),'.'),1,2) ||'%' from dual; 这样可以省略小数,得33%
SELECT RTrim(To_Char((round((1/3),2))*100,'FM99999999990.9999'),'.')||'%' from dual;与以上是同样效果,得33%.
其中把1/3换成你要的 我的是:单个选项的票数/总票数即可
当然单个选项的票数,总票数 也得你用你的SQL语句算出来就OK了.
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/wpplvhq/archive/2008/09/21/2956993.aspx


相关文档:

理解oracle中连接和会话

1.
     
概念不同:
连接是指物理的客
户端到oracle服务端的连接。一般是通过一个网络的连接。
在已建立的连接
上,建立客户端与oracle
的会话,以后客
户端与oracle
的交互都在一个会话环境中
进行。
2.  
关系是多对多:[同意网友的意见,应该是1对
多。一个会话要么 ......

使用oracle的javaJVM,trigger

create or replace java source named FirstClass as
public class FirstClass{
public static String greeting(String name){
return "Hello " + name + "!";
}
}
/
create or replace function firstclass_greeting (name varchar2) ret ......

Oracle启动过程详解 介绍及命令,还有关闭

Oracle启动过程介绍及命令,还有关闭。
写在前面:启动数据库前,请先启动监程序。
lsnrctl start
启动的三个步骤,依次为1.创建并启动实例、2.装载数据库、3.打开数据库。
可以通过命令startup来实现。
startup 命令格式
startup [ nomount | mount | open | force ] [ restrict ] [ pfile=filename ];
方法1 -- st ......

oracle 多表关联 的 update


表中要更新的数据,必须要通过和另一个表来关联才能确定要更新的条目,mssql可以直接用 from t1.id=t2.id 来更新,而Oracle则报错
最后google到这样,直接将关联后的表作为一个表来更新。。。。
update (select * from us_cm_cat_petrol_gun g 
       left join us_cm_ci c on g.machine_sn ......

Solaris10 安装Oracle 10g

http://inthirties.com:90/thread-1233-1-1.html
好没有碰Solaris了,手有些生了,看来真要装个solaris,平时多玩玩。
在solaris上装Oracle 10g先。
1. 检查安装依赖包
官方要求的包
SUNWarc
SUNWbtool
SUNWhea
SUNWlibm
SUNWlibms
SUNWsprot
SUNWtoo
SUNWi1of
SUNWi1cs
SUNWi15cs
SUNWxwfnt
执行命令
# p ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号