資源描述:
《sql語句中的in怎么用》由會員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在工程資料-天天文庫。
1、★sql語句中的in怎么用OracleSQLIN用法OracleSQLIN用法查找名字為張海、王濤、王家一之一的教師姓名和工資。SELECTtname,salFROMTEACHERemployee_infoD001FROMBOMMDD001NOTIN(SELECTMC001FROMBOMMC)NOTEXISTS,exists的用法跟in不一樣,一般都需要和子表進(jìn)行關(guān)聯(lián),而且關(guān)聯(lián)時(shí),需要用索引,這樣就可以加快速度selectDISTINCTMD001fromBOMMDC001FROMBOMMCAB)效率低,用到了A
2、表上cc列的索引;select*fromABBA)效率高,用到了B表上cc列的索引;select*fromBAefromstudentein('zhang','efromstudente='zhang'orname='li'orname='e='zhao'的結(jié)果是相同的。例子如下(即exists返回eFROMpublisherstitlespublisherstitlesaryland州的所有的姓名和州的列表時(shí),就需要下列查詢:SEL
3、ECTProductID,ProductNameFROMNortheFROMNorthe,au_fnameFROMauthorstitleauthorpublisherstitlespublisherstitlespublisherstitlestitlesIN:后面只能是對單列:SELECTpub_idFROMtitles[四]NOTEXISTS:例如,要查找不出版商業(yè)書籍的出版商的名稱:SELECTpub_nameFROMpublisherstitlestitlessalesanyvalues,也就是說in與
4、notin最大的數(shù)據(jù)容量是1000,有興趣的朋友可以試下!in不行的時(shí)候最好用exists.自己的實(shí)用的一個(gè)例子,一個(gè)消費(fèi)表中,要查詢當(dāng)前月的用戶不在前當(dāng)年前幾個(gè)月中存在,也就是說凈增長多少個(gè)消費(fèi)。SQL如下:selectcont(t.customerid),count(distinctt.customerid)fromconsumelogte>date'2009-09-01'andt.storetime<date'2009-10-01'andnotexists(sel
5、ect*fromconsumelogserid=t.customeridands.storetime>date'2009-01-01'ands.storetime<date'2009-09-01')方法有些笨,一個(gè)一個(gè)的修改月份。朋友們有好的方法推薦下~~