2017-03-04 73 views
0

如何将随机名插入另一个表中? 例如:插入随机名PL/SQL

select firstname,lastname from table1; 
create table2 (newfirstname varchar2(20),newlastname varchar2(20)); 
insert into table2 select newfirstname, random(newlastname); 

我怎么会产生新释表1的相关信息?
所以,我的问题是,如何将表1中的随机“姓氏”插入到 表2中,以便从表2中获取新的全名(newfirstname + newlastname),该名称与表1中的 (firstname + lastname)不同。 我正在使用sql developer,pl/sql。

回答

0

我相信你应该有数字ID字段,表2,如table2.id,然后

select 
(select MIN(table2.id) from table2) as minid, (select MAX(table2.id) from table2) as maxid, 
(select table2.firstname from table2 where table2.id >= dbms_random.value(minid,maxid) order by table2.id limit 1) as rnd_firstname, 
(select table2.lastname from table2 where table2.id >= dbms_random.value(minid,maxid) order by table2.id limit 1) as rnd_lastname; 

会给你名字+姓氏从表2的任意组合。

+0

我明白了这一点,但我必须从table1中选取随机姓,并将它们插入到table2中。因此,我将在table2中使用与table1不同的名称。 – reg

0
insert into table2 
select A.firstname, B.lastname 
    from table1 A, table1 B 
where not exists(select 1 from table1 C 
        where C.firstname=A.firstname and C.lastname=B.lastname) 

添加随机排序和/或如果需要数限制。