表鏈接procsql的示例分析

這篇文章給大家分享的是有關(guān)表鏈接proc sql的示例分析的內(nèi)容。小編覺(jué)得挺實(shí)用的,因此分享給大家做個(gè)參考,一起跟隨小編過(guò)來(lái)看看吧。

網(wǎng)站設(shè)計(jì)制作、成都網(wǎng)站制作服務(wù)團(tuán)隊(duì)是一支充滿著熱情的團(tuán)隊(duì),執(zhí)著、敏銳、追求更好,是創(chuàng)新互聯(lián)的標(biāo)準(zhǔn)與要求,同時(shí)竭誠(chéng)為客戶提供服務(wù)是我們的理念。創(chuàng)新互聯(lián)建站把每個(gè)網(wǎng)站當(dāng)做一個(gè)產(chǎn)品來(lái)開(kāi)發(fā),精雕細(xì)琢,追求一名工匠心中的細(xì)致,我們更用心!

/*21.1.1 簡(jiǎn)單連接*/
proc sql;
select * from resdat.china, resdat.usa;
quit

/*21.1.3 內(nèi)部連接*/
proc sql;
select * from resdat.china, resdat.usa
where china.level=usa.level;
quit;

/*21.1.3.1 使用表的別名*/
proc sql;
select * from resdat.china as a, resdat.usa as b
where a.level=b.level;
quit;

/*21.1.3.2 使用別名進(jìn)行表的自我連接*/
proc sql;
select * from resdat.china a, resdat.china b
where a.level<b.level;
quit;

/*21.1.3.3 設(shè)定連接輸出的排列順序*/
proc sql;
select * from resdat.china a, resdat.china b
where a.level<b.level
order by a.level desc;
quit; 

/*21.1.6 缺失值對(duì)連接的影響*/
/* 程序一 */
proc sql;
   title ' Table A and B Joined';
   select a.obs 'A-OBS', a.stkcd, b.obs 'B-OBS', b.stkcd
      from a, b
      where a.stkcd= b.stkcd;
/* 程序二 */
proc sql;
   title ' Table Three and Four Joined';
   select Three.Obs '3-OBS', Three.Fdcd, Four.Obs '4-OBS', Four.Fdcd
      from Three, Four
      where Three.fdcd= Four.fdcd and 
            three.fdcd is not missing;

/* 21.1.7 從多于兩個(gè)表的數(shù)據(jù)集中查詢數(shù)據(jù) */
proc sql outobs=3;
select a.stkcd,b.lstknm,c.clpr
from resdat.sampstk a,resdat.lstkinfo b,resdat.qttndist c
where a.stkcd=b.stkcd and  b.stkcd=c.stkcd and a.stkcd=c.stkcd;
quit;         

/* 21.1.8.1 左外部連接 */
proc sql;
select * from resdat.china a left join resdat.usa b
on a.level=b.level;
quit;

/* 21.1.8.2 右外部連接 */
proc sql;
select * from resdat.china a right join resdat.usa b
on a.level=b.level;
quit;

/*21.1.8.3 完全外部連接*/
proc sql;
select * from resdat.china a full join resdat.usa b
on a.level=b.level;
quit;

/*21.1.9.1 與簡(jiǎn)單連接功能相同的Cross連接 */
proc sql;
select * from resdat.china cross join resdat.usa;
quit;


/*21.1.9.2 包含所有行的Union連接  */
proc sql;
select * from resdat.china union join resdat.usa;
quit;

/*21.1.9.3使用自動(dòng)匹配連接的Natural連接*/
proc sql;
select * from resdat.china union join resdat.usa;
quit;

/* 21.1.10 連接使用COALESCE函數(shù) */
Proc sql;
select a.level,a.china,coalesce(b.level,a.level),coalesce(b.usa,a.china)as usa
from resdat.china a full join resdat.usa b
on a.level=b.level;
quit;    


/* 21.2.1 所有行匹配無(wú)重復(fù)值的情況 */
data merge1;
   merge a b;
   by code;
run;

proc print data=merge1 noobs;
   title 'Table MERGE1';
run;        

proc sql;
   title 'Table MERGE1';
   select a.code, a.manager, b.Assitant
      from a, b
      where a.code=b.code;
quit;

/* 21.2.2 部分行匹配無(wú)重復(fù)值的情況 */
/* 程序一 */
data merge2;
   merge a b;
   by code;
run;
proc print data=merge2 noobs;
   title 'Table MERGE2';
run;
/* 程序二*/
proc sql;
select code,a.manager,b.assistant 
from a natural full join b;
quit;

/* 21.2.3有重復(fù)值的情況 */
/*程序一*/
data merge3;
   merge a b;
   by code;
run;
proc print data=merge3 noobs;
   title 'Table MERGE3';
run;
/* 程序二*/
Proc sql;
Title 'Table Merge3';
Select a.code, a.manager, b.assistant 
From a full join b 
On a.code=b.code;
quit;    

/* 21.3.1 產(chǎn)生單個(gè)值的子查詢 */
Proc sql;
Title 'Which Manager has the same code as Assistant Chen';
Select *
From a
Where code eq (select code from b where assistant='Chen');
Quit;

/* 21.3.2 產(chǎn)生多個(gè)值的子查詢 */
Proc sql;
select stkcd,lstknm,lstdt from resdat.lstkinfo
where stkcd in (select stkcd from resdat.sampstk);
quit; 

/* 21.3.3 混合子查詢 */
proc sql;
select stkcd,yrret from resdat.yrret a
       where (select stktype from resdat.lstkinfo b
                     where a.stkcd=b.stkcd)='A'
			 and '1jan2005'd<=date<='31dec2005'd;
quit;

/* 21.3.5 子查詢的多重嵌套 */
Proc sql;
select stkcd,yrret from resdat.yrret a
       where stkcd in (select stkcd from resdat.sampstk b
	                          where stkcd in(select stkcd from resdat.lstkinfo c
							                        where c.stktype='A'))
			 and '1jan2005'd<=date<='31dec2005'd;
quit;

/*21.3.6 在JOIN連接中使用子查詢*/
proc sql;
select a.id,b.id,sqrt((a.x-b.x)**2+(a.y-b.y)**2)as dist from point a,point b
       where a.id lt b.id and
             calculated dist=(select min(sqrt((c.x-d.x)**2+(c.y-d.y)**2))
	                                 from point c,point d
							         where c.id lt d.id);
quit;

/*21.5.2 由多個(gè)查詢產(chǎn)生非重復(fù)觀測(cè) (UNION算符)*/
/*程序一*/
proc sql;
   title 'A UNION B';
   select * from A
   union
   select * from B;
quit;
/* 程序二 */
proc sql;
   title 'A UNION ALL B';
   select * from A
   union all
   select * from B;
quit;

/*21.5.3 產(chǎn)生只屬于第一個(gè)查詢的觀測(cè)(EXCEPT算符)*/
/*程序一*/
proc sql;
   title 'A EXCEPT B';
   select * from A
   except
   select * from B;
quit;
/*程序二*/
proc sql;
   title 'A EXCEPT ALL B';
   select * from A
   except all
   select * from B;

/*21.5.4 從多個(gè)查詢中產(chǎn)生公共部分 (INTERSECT算符)*/
proc sql;
   title 'A INTERSECT B';
   select * from A
   intersect
   select * from B;

/*21.5.5 直接連接查詢結(jié)果 (OUTER UNION算符)*/
/*程序一*/
proc sql;
   title 'A OUTER UNION B';
   select * from A
   outer union
   select * from B; 
/*程序二*/
proc sql;
   title 'A OUTER UNION CORR B';
   select * from A
   outer union corr
   select * from B;

/* 21.5.6 特殊的查詢合并方式 */
proc sql;
   title 'A EXCLUSIVE UNION B';
   (select * from A
         except
         select * from B)
   union
   (select * from B
         except
         select * from A);

感謝各位的閱讀!關(guān)于“表鏈接proc sql的示例分析”這篇文章就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,讓大家可以學(xué)到更多知識(shí),如果覺(jué)得文章不錯(cuò),可以把它分享出去讓更多的人看到吧!

本文題目:表鏈接procsql的示例分析
鏈接分享:http://bm7419.com/article8/jjscip.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站導(dǎo)航、建站公司、App設(shè)計(jì)、Google關(guān)鍵詞優(yōu)化

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

商城網(wǎng)站建設(shè)