随机数问题 把data这个字段里面大于10.7的都更新成10.7小于10.7的并且这些更新的这些数据要求是在0到0.3之间的连续的,也就是在10.7的基础上减去的数值是0到0.3的随机数 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 select 10.7+abs(to_number(dbms_random.value(0,0.3))) from dual; 如果要更新的是大于10.7的那些数的话select case when data>10.7 then data-round(dbms_random.value(0,0.3),1 ) end new_data from table1 /*创建表*/create table test_bb( name varchar2(255), datafloat number(8,2))/*创建测试数据*/insert into test_bb values ('aa',10.7);insert into test_bb values ('bb',10.8);insert into test_bb values ('cc',10.6);insert into test_bb values ('dd',10.5);insert into test_bb values ('ee',10.4);insert into test_bb values ('ff',10.9);insert into test_bb values ('gg',10.3);insert into test_bb values ('hh',10.2);commit;/*显示测试数据*/rownum name datafloat1 aa 10.702 bb 10.803 cc 10.604 dd 10.505 ee 10.406 ff 10.907 gg 10.308 hh 10.20/*update 语句更新*/update test_bbset test_bb.datafloat = (select a.datafloatx from (select name,10.7 - round(dbms_random.value(0,0.3),1 ) as datafloatx from test_bb where datafloat < 10.7union allselect name,10.7 from test_bb where datafloat >= 10.7) awhere test_bb.name = a.name)/*显示结果*/rownum name datafloat1 aa 10.702 bb 10.703 cc 10.704 dd 10.705 ee 10.506 ff 10.707 gg 10.608 hh 10.50 高级sql请教?实在写不出来~~ 关于存储过程并发处理 请教oracle数据库优化,尽量分详细点 求CNOUG论坛(oracle.com.cn)邀请码一个 非常谢谢!! VC搭建PRO*C开发环境的问题 有经验的大虾,进来看看这个问题怎么解决!! 关于update的问题 oracle中怎样取本周记录 关于ORACLE中如何取最后几条记录的问题 各位高手,请问哪儿有ORACLE9i的中文版下,谢谢大家!! 几个ORACLE分布数据库合并到一个ORACLE数据库 oracle问题 急救呀
select case when data>10.7 then data-round(dbms_random.value(0,0.3),1 ) end new_data from table1
create table test_bb
(
name varchar2(255),
datafloat number(8,2)
)/*创建测试数据*/insert into test_bb values ('aa',10.7);
insert into test_bb values ('bb',10.8);
insert into test_bb values ('cc',10.6);
insert into test_bb values ('dd',10.5);
insert into test_bb values ('ee',10.4);
insert into test_bb values ('ff',10.9);
insert into test_bb values ('gg',10.3);
insert into test_bb values ('hh',10.2);
commit;/*显示测试数据*/
rownum name datafloat
1 aa 10.70
2 bb 10.80
3 cc 10.60
4 dd 10.50
5 ee 10.40
6 ff 10.90
7 gg 10.30
8 hh 10.20/*update 语句更新*/update test_bb
set test_bb.datafloat = (select a.datafloatx from (
select name,10.7 - round(dbms_random.value(0,0.3),1 ) as datafloatx from test_bb where datafloat < 10.7
union all
select name,10.7 from test_bb where datafloat >= 10.7) a
where test_bb.name = a.name
)/*显示结果*/
rownum name datafloat1 aa 10.70
2 bb 10.70
3 cc 10.70
4 dd 10.70
5 ee 10.50
6 ff 10.70
7 gg 10.60
8 hh 10.50