2012-04-16 6 views
0

SAS PROC SQLで既存のテーブルに「新しい」行のみを挿入する方法を知っていますか?文がproc sql-sasの既存のテーブルに新しい(重複ではない)行だけを挿入するには?

この一周する方法はあります(アリスなし)classmからわずか10新しい行を挿入する場所を

proc sql; 
create table class as 
select * 
from sashelp.class 
where sex = 'F'; 
quit; 

proc sql; 
create table classm as 
select * 
from sashelp.class 
where sex = 'M' or Name = 'Alice'; 
quit; 

proc sql; 
insert into class 
select * 
from classm ; 
quit; 

insert文は私が使用することはできませんか?私は大きなデータで作業しているので、私はproc sqlでこれをやりたい、あるいはデータステップがうまくいきます。

+2

テーブル定義にプライマリキーを追加することは、テーブルに重複を拒否させる別の方法です。参照:http://support.sas.com/documentation/cdl/en/sqlproc/62086/HTML/default/viewer.htm#a001396785.htm – DataParadigms

+0

ここであなたのケースをよく理解していません。しかし、where(sex = 'M' or Name = 'Alice')やsex = 'F'のような洗練された 'where'節を作ることが解決策になると思われます。 –

答えて

2

これは私のために働いたおかげでは...

proc sql; 
create table class as 
select * 
from sashelp.class 
where sex = 'F'; 
quit; 

proc sql; 
create table classm as 
select * 
from sashelp.class 
where sex = 'M' or Name = 'Alice'; 
quit; 

proc sql; 
insert into class 
select * 
from classm 
where name^="John"; 
quit; 
+0

これも私のために働いた。 – DataParadigms

0

マージを使用しない理由は?

参照(ID)である列で2つの表をソートし、選択したキーで2つの表をマージします。

関連する問題