PLSQL应用问题汇总.doc

PLSQL应用问题汇总.doc

ID:51693543

大小:74.50 KB

页数:21页

时间:2020-03-15

PLSQL应用问题汇总.doc_第1页
PLSQL应用问题汇总.doc_第2页
PLSQL应用问题汇总.doc_第3页
PLSQL应用问题汇总.doc_第4页
PLSQL应用问题汇总.doc_第5页
资源描述:

《PLSQL应用问题汇总.doc》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、第一部分:查询常用语句汇总1.casewhenthen条件表达式CASEWHENconditionTHENresult[WHEN...][ELSEresult]ENDCASE子句可以用于任何表达式可以有效存在的地方。condition是一个返回boolean的表达式。如果结果为真,那么CASE表达式的结果就是符合条件的result。如果结果为假,那么以相同方式搜寻任何随后的WHEN子句。如果没有WHENcondition为真,那么case表达式的结果就是在ELSE子句里的值。如果省略了ELSE子句而且没有匹配的条件,结果为NULL。例子:SELECT*FROMtest;a---123

2、SELECTa,CASEWHENa=1THEN'one'WHENa=2THEN'two'ELSE'other'ENDFROMtest;a

3、case---+-------1

4、one2

5、two3

6、other所有result表达式的数据的类型都必须可以转换成单一的输出类型。下面这个"简单的"CASE表达式是上面的通用形式的一个特殊的变种。CASEexpressionWHENvalueTHENresult[WHEN...][ELSEresult]END先计算expression的值,然后与所有在WHEN子句里声明的value对比,直到找到一个相等的。如果没有找到匹配的,则返回在ELSE子句里

7、的result(或者NULL)。这个类似于C里的switch语句。上面的例子可以用简单CASE语法来写:SELECTa,CASEaWHEN1THEN'one'WHEN2THEN'two'ELSE'other'ENDFROMtest;a

8、case---+-------1

9、one2

10、two3

11、otherCASE表达式并不计算任何对于判断结果并不需要的子表达式。比如,下面是一个可以避免被零除的方法:SELECT...WHERECASEWHENx<>0THENy/x>1.5ELSEfalseEND;2.oracle pl/sql INSTR(C1,C2,I,J)INSTR(C1,C2,I,J

12、)在一个字符串中搜索指定的字符,返回发现指定的字符的位置;C1   被搜索的字符串C2   希望搜索的字符串I    搜索的开始位置,默认为1J    出现的位置,默认为1SQL>selectinstr('oracletraning','ra',1,2)instringfromdual;INSTRING---------9INSTR方法的格式为INSTR(源字符串,目标字符串,起始位置,匹配序号)例如:INSTR('CORPORATEFLOOR','OR',3,2)中,源字符串为'CORPORATEFLOOR',目标字符串为'OR',起始位置为3,取第2个匹配项的位置。默认查找顺序为

13、从左到右。当起始位置为负数的时候,从右边开始查找。所以SELECTINSTR('CORPORATEFLOOR','OR',-1,1)"Instring"FROMDUAL的显示结果是Instring——————143.Oracle的DECODE()函数DECODE函数相当于一条件语句(IF).它将输入数值与函数中的参数列表相比较,根据输入值返回一个对应值。函数的参数列表是由若干数值及其对应结果值组成的若干序偶形式。当然,如果未能与任何一个实参序偶匹配成功,则函数也有默认的返回值。区别于SQL的其它函数,DECODE函数还能识别和操作空值.其具体的语法格式如下:DECODE(input_

14、value,value,result[,value,result…][,default_result]);其中:input_value试图处理的数值。DECODE函数将该数值与一系列的序偶相比较,以决定最后的返回结果value是一组成序偶的数值。如果输入数值与之匹配成功,则相应的结果将被返回。对应一个空的返回值,可以使用关键字NULL于之对应result是一组成序偶的结果值default_result未能与任何一序偶匹配成功时,函数返回的默认值下面的例子说明了,如何读取用户CHECKUP表SEAPARK中的BLOOD_TEST_FLAG列下的项目,作为DECODE函数的实参支持值。S

15、ELECTcheckup_type,DECODE(blood_test_flag,’Y’,’Yes’,’N’,’No’,NULL,’None’,’Invalid’)FROMcheckup;例如:  selectdecode(x,1,‘xis1’,2,‘xis2’,‘others’)fromdual  当x等于1时,则返回‘xis1’。  当x等于2时,则返回‘xis2’。  否则,返回others’。  需要,比较2个值的时候,可以配合SIGN()函数一起

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。