求一SQL,关于数据混淆.例如我有一个表SP_DOC(商品档案)下有如下字段,
编号 id(PK)    名称  name     价格  price
A001            书包                   5
A002             本                    1
.
.
.
.
A3000           笔                      2大概有3w条数据,我想让, id='A001'的数据名称为3w条数据中的任意商品名称.可以利用oracle随机函数DBMS_RANDOM.RANDOM也可.

解决方案 »

  1.   

    select 'A001',name from SP_DOC where rownum=1;
      

  2.   

    select a.id,b.name from sp_doc a,
    (
    select name from (select rownum rid,name from sp_doc) where rid=
    (
    select abs(trunc(dbms_random.VALUE(1,(select count(*)+1 from sp_doc)),0)) from dual
    )) b where a.id='A001'
      

  3.   

    where a.id='A001'
    如果我要全表更新呢? 只能写游标循环处理是不
      

  4.   

    update sp_doc t set name=(select b.name from sp_doc a, 

    select name from (select rownum rid,name from sp_doc) where rid= 

    select abs(trunc(dbms_random.VALUE(1,(select count(*)+1 from sp_doc)),0)) from dual 
    )) b where a.id=t.id);
    按3楼的基础上改的,试试