2012-03-22 3 views
0

다른 테이블에서 테이블을 생성해야하지만 마지막 테이블에 10000 개의 레코드 만 추가해야합니다. 어떤 일이이 문을 수정하여 수행 할 수있는 방법을 말해 줄 수 :SELECT TOP을 사용하여 생성 10000

create table export_cluster_125m 
as 
(select * from cluster_125m); 
+0

오라클은 rownum을 사용하므로 'WHERE ROWNUM <10000' – bdares

+0

오라클과 같은 절을 사용하여 테이블의 행 순서를 저장하지 않아도됩니다. 추가 된 순서를 저장하지 않으면 마지막 10000 행을 선택할 수 없습니다. – turbanoff

답변

6

을 당신은 당신이 "마지막"10000 행 싶은 말은. 이 값을 created_date과 같은 열로 결정할 수 있다고 가정하면 해당 열을 기준으로 정렬 (내림차순) 한 다음 해당 쿼리에서 반환 한 첫 번째 10000 개의 행을 가져와야합니다. 이 ROWNUM을 사용하여 수행하지만,이 같은 하지 할 수 있습니다 CREATED_DATE 주문한 일부 10000 행을 반환합니다

-- Will not work correctly 
select * from cluster_125m 
where rownum <= 10000 
order by created_date desc; 

이 (내림차순) -하지만 그들은 일반적으로 최신 10000 행되지 않습니다. 다음 처음 만이 촬영

select * from 
(select * from cluster_125m 
    order by created_date desc 
) 
where rownum <= 10000; 
이제 모든 행이 내림차순으로 정렬됩니다

: 당신이 둥지에이 같은 쿼리가 필요하다는 수행합니다.

+0

방금 ​​한 테이블에서 해봤는데 완벽하게 작동했습니다. 답변을 주셔서 감사 드리며 또한 설명해 주셔서 감사합니다. – CSharpened

1

이 하나의 시도 :

create table export_cluster_125m 
as 
select * from cluster_125m where rownum<=10000; 
+0

그러면 10000 개의 임의 행이 생깁니다. – Phil

관련 문제