資源描述:
《Oracle SQL高級查詢.ppt》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫。
1、高級查詢內(nèi)容使用集合操作符使用TRANSLATE函數(shù)使用DECODE函數(shù)使用CASE表達式層次化查詢使用分析函數(shù)使用集合操作符(1)UNIONALL返回各個查詢檢索出的所有行,包括重復行UNION返回各個查詢檢索出的所有行,不包括重復行INTERSECT返回兩個查詢檢索出的共有行MINUS返回將第二個查詢檢索出的行從第一個查詢檢索出的行中減去之后剩余的行使用集合操作符(2)selectempno,enamefromempwhereenamelike'A%'orenamelike'B%'Unionselectempno,enamefromempwhereenamelike'B%'ore
2、namelike'C%';使用集合操作符(3)createtablebicycleInsertinto使用TRANSLATE函數(shù)(1)語法格式如下:transalate(x,from_string,to_string)說明:將x中的from_string替換成to_string。對應(yīng)字符替換使用TRANSLATE函數(shù)(2)selectpart_name,mp_costasactualCost,translate(mp_cost,12345678,5129837046)astranslatedCostfrombicycle;使用DECODE函數(shù)(1)DECODE(value,searc
3、h1,result1,default)如果value==search1,則返回result,否則返回default類似于C語言的if語句if(value==search1)return(result1);elsereturn(default);使用DECODE函數(shù)(2)selectename,sal,decode(deptno,'10','會計部','其他部門')fromemp;使用DECODE函數(shù)(3)DECODE(value,search1,result1,search2,result2,search3,result3,default)使用DECODE函數(shù)(4)selectena
4、me,sal,decode(deptno,'10','會計部','20','研發(fā)部','30','銷售部','其他部門')fromemp;使用CASE表達式(1)簡單的CASE表達式CASEsearch_expressionWHENexpression1THENresult1WHENexpression2THENresult2WHENexpression3THENresult3……ELSEdefault_resultEND使用CASE表達式(2)selectename,sal,casedeptnowhen10then'會計部'when20then'研發(fā)部'else'其他部門'endf
5、romemp;使用CASE表達式(3)搜索CASE表達式CASEWHENcondition1THENresult1WHENcondition2THENresult2WHENcondition3THENresult3……ELSEdefault_resultEND使用CASE表達式(4)selectename,casewhenhiredate<'1-7月-81'then'老員工'whenhiredate>='1-7月-81'andhiredate<='1-7月-82'then'普通員工'whenhiredate>'1-7月-82'then'新員工'endfromemp;層次化查詢(1)自
6、行車結(jié)構(gòu)示例層次化查詢(2)bicycle表結(jié)構(gòu)層次化查詢(3)bicycle表數(shù)據(jù)層次化查詢(4)為了執(zhí)行層次查詢,需要在select語句中添加startwith子句和connectby子句。添加這些子句后的select語句的語法格式如下:selectlevel,column_name,expression,…fromtable_name[wherewhere_condition]startwithstart_conditionconnectbypriorprior_condition;層次化查詢(5)level偽列,用于顯示樹的層次。start_condition指定層次查詢開始
7、的層次priorprior_condition指定層次結(jié)構(gòu)中父節(jié)點和子節(jié)點之間的如何聯(lián)系層次化查詢(6)selectpart_id,parent_id,part_name,mp_costfrombicyclestartwithpart_id=1connectbypriorpart_id=parent_id;selectlevel,part_id,parent_id,part_name,mp_costfrombicyclestartwithpart_id=1