当前位置: 代码迷 >> SQL >> oracle 去反复,¥货币,保留小数点后两位,测试SQL语句执行时间
  详细解决方案

oracle 去反复,¥货币,保留小数点后两位,测试SQL语句执行时间

热度:84   发布时间:2016-05-05 14:23:45.0
oracle 去重复,¥货币,保留小数点后两位,测试SQL语句执行时间


1.去重复数据:select * from b a where id > (select min(id) from b b where a.name=b.name)


2.测试SQL语句执行时间的方法和步骤:
SQL> set timing on;
步骤:

1. alter system flush shared_pool; --刷新一下shared_pool??????
2. set timing on ; --允许统计时间??
3. select ... ; --执行sql语句

举例说明:

SQL/Plus

SQL> set timing on
SQL> select * from test2;


3.lpad 填充字符(长度不够就填充字符)
select lpad(id,5,'0') from b ;

?

4. select ltrim(rtrim(id)) from b ; 去除空格

?

5. 按指定格式显示小数点及小数点后位置(指定数字没有小数的话,以0补足)

例如:

SQL> select to_char(18,'999.000') from dual;


TO_CHAR(

--------

18.000

?

6.L 指定位置显示本地默认符号(默认值见:NLS_CURRENCY)

例如:

SQL> select to_char(999,'L999') from dual;


TO_CHAR(999,'L

--------------

¥999


SQL> alter session set nls_currency='haha';


会话已更改。


SQL> select to_char(999,'L999') from dual;


TO_CHAR(999,'L

--------------

haha999

?

7、U 与L类似,在指定位置显示货币单位(默认值见:NLS_DUAL_CURRENCY)

例如:

SQL> select TO_CHAR(128,'999U') from dual;


TO_CHAR(128,'9

--------------

128¥


SQL> alter session set nls_dual_currency='aaa';


会话已更改。


SQL> select TO_CHAR(128,'999U') from dual;


TO_CHAR(128,'9

--------------

128aaa


8、 to_char(0.1323,'9999999999990.00')??????????????? 保留小数点后两位
? 显示成0.13

?

9.一个解决Oracle number类型查询精度丢失的方法:
?//四舍五入小数点后2位

list.add(new BigDecimal(zcxxhj).setScale(2, BigDecimal.ROUND_HALF_UP));

?

?

  相关解决方案