资源描述:
《Oracle SQL高级查询.ppt》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、高级查询内容使用集合操作符使用TRANSLATE函数使用DECODE函数使用CASE表达式层次化查询使用分析函数使用集合操作符(1)UNIONALL返回各个查询检索出的所有行,包括重复行UNION返回各个查询检索出的所有行,不包括重复行INTERSECT返回两个查询检索出的共有行MINUS返回将第二个查询检索出的行从第一个查询检索出的行中减去之后剩余的行使用集合操作符(2)selectempno,enamefromempwhereenamelike'A%'orenamelike'B%'Unionselectempno,enamefromempwhereenamelike'B%'ore
2、namelike'C%';使用集合操作符(3)createtablebicycleInsertinto使用TRANSLATE函数(1)语法格式如下:transalate(x,from_string,to_string)说明:将x中的from_string替换成to_string。对应字符替换使用TRANSLATE函数(2)selectpart_name,mp_costasactualCost,translate(mp_cost,12345678,5129837046)astranslatedCostfrombicycle;使用DECODE函数(1)DECODE(value,searc
3、h1,result1,default)如果value==search1,则返回result,否则返回default类似于C语言的if语句if(value==search1)return(result1);elsereturn(default);使用DECODE函数(2)selectename,sal,decode(deptno,'10','会计部','其他部门')fromemp;使用DECODE函数(3)DECODE(value,search1,result1,search2,result2,search3,result3,default)使用DECODE函数(4)selectena
4、me,sal,decode(deptno,'10','会计部','20','研发部','30','销售部','其他部门')fromemp;使用CASE表达式(1)简单的CASE表达式CASEsearch_expressionWHENexpression1THENresult1WHENexpression2THENresult2WHENexpression3THENresult3……ELSEdefault_resultEND使用CASE表达式(2)selectename,sal,casedeptnowhen10then'会计部'when20then'研发部'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、行车结构示例层次化查询(2)bicycle表结构层次化查询(3)bicycle表数据层次化查询(4)为了执行层次查询,需要在select语句中添加startwith子句和connectby子句。添加这些子句后的select语句的语法格式如下:selectlevel,column_name,expression,…fromtable_name[wherewhere_condition]startwithstart_conditionconnectbypriorprior_condition;层次化查询(5)level伪列,用于显示树的层次。start_condition指定层次查询开始
7、的层次priorprior_condition指定层次结构中父节点和子节点之间的如何联系层次化查询(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