oracle_sql单行函数练习(含答案).doc_第1页
oracle_sql单行函数练习(含答案).doc_第2页
oracle_sql单行函数练习(含答案).doc_第3页
oracle_sql单行函数练习(含答案).doc_第4页
免费预览已结束,剩余1页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

oracle_sql单行函数练习(含答案)整理 2012-12-3Oracle 单行函数的实例练习,基于Oracle自带数据库,用户名分别为hr(主要)和scott。基本上都做出来了,但还有一道关于人民币转数字的还没有做出来,有知道的留言下哦,其他地方有错误的请指正。Sql代码 1. /*1、将字符串abc以10位长度输出,不足10位用#补足(分别从左边和右边补足) 2. 2、将字符串abcewr32454去除两头空格输出 3. 3、将字符串abc234abcabcdefabc中abc替换为#输出 4. 4、将数字7433453.52638263四舍五入后输出 5. 5、将数字743583.345234中十位数之后数字全部忽略输出 6. */ 7. 8. -1、将字符串abc以10位长度输出,不足10位用#补足(分别从左边和右边补足) 9. SELECTlpad(abc,10,#)FROMdual; 10. SELECTrpad(abc,10,#)FROMdual; 11. -2、将字符串abcewr32454去除两头空格输出 12. SELECTtrim(abcewr32454)FROMdual; 13. -3、将字符串abc234abcabcdefabc中abc替换为#输出 14. SELECTreplace(abc234abcabcdefabc,abc,#)FROMdual; 15. -4、将数字7433453.52638263四舍五入后输出 16. SELECTROUND(7433453.52638263)FROMdual; 17. -5、将数字743583.345234中十位数之后数字全部忽略输出 18. SELECTround(743583.345234,-1)fromDUAL; 19. 20. /* 21. 6、查询hr方案中employees表,将所有员工工资上涨11.173%后,四舍五入到十位输出 22. 7、将当前系统时间格式化为YEARMONTHDYDAYYYYY-MM-DDHH24:MI:SS输出 23. 8、查询hr方案中employees表,将入职时间格式化为YYYY-MM-DDHH24:MI:SS显示 24. 9、将当前时间加一年后格式化输出显示 25. 10、两个时间相减后输出 26. */ 27. 28. -6、查询hr方案中employees表,将所有员工工资上涨11.173%后,四舍五入到十位输出 29. SELECTround(salary*(1+0.11173),-1) 30. FROMemployees; 31. 32. -7、将当前系统时间格式化为YEARMONTHDYDAYYYYY-MM-DDHH24:MI:SS输出 33. SELECTto_char(sysdate,YEARMONTHDYDAYYYYY-MM-DDHH24:MI:SS) 34. FROMdual; 35. -8、查询hr方案中employees表,将入职时间格式化为YYYY-MM-DDHH24:MI:SS显示 36. SELECTto_char(hire_date,YYYY-MM-DDHH24:MI:SS) 37. FROMemployees; 38. -9、将当前时间加一年后格式化输出显示 39. SELECTto_char(add_months(sysdate,12),YYYY-MM-DD) 40. fromdual; 41. 42. -10、两个时间相减后输出 43. SELECTto_date(2011,YYYY)-sysdate 44. FROMdual; 45. 46. /* 47. 11、查询hr下employees表中入职时间满10年的员工 48. 12、查询hr下employees表中2000年后入职的员工 49. 13、查询hr下employees表中所有98年3月入职的员工 50. 14、查询hr下employees表中所有在3月入职的人 51. 15、查询当前时间距离1998-8-2的月数 52. */ 53. 54. -11、查询hr下employees表中入职时间满10年的员工 55. SELECTfirst_name 56. FROMemployees 57. wheremonths_between(sysdate,hire_date)10*12; 58. 59. -12、查询hr下employees表中2000年后入职的员工 60. SELECT* 61. FROMemployees 62. whereto_char(hire_date,YYYY)=2000; 63. 64. -13、查询hr下employees表中所有98年3月入职的员工 65. -这里要注意用的是to_char来进行日期比较 66. SELECT* 67. FROMemployees 68. WHEREto_char(hire_date,YYYY-MM)=1998-03; 69. 70. -14、查询hr下employees表中所有在3月入职的人 71. SELECT* 72. FROMemployees 73. WHEREto_char(hire_date,MM)=03; 74. 75. -15、查询当前时间距离1998-8-2的月数 76. SELECTMONTHS_BETWEEN(sysdate,to_date(1998-8-2,YYYY-MM-DD) 77. FROMdual; 78. 79. /* 80. 16、将当前时间减12个月然后输出 81. 17、查询下一个星期一显示输出 82. 18、查询一个月的最后一天显示输出 83. 19、查询hr下employees表中入职时间在下半个月的员工 84. 20、查询hr下employees表中上半年入职的员工 85. */ 86. -16、将当前时间减12个月然后输出 87. SELECTadd_months(sysdate,-12) 88. FROMdual; 89. 90. -17、查询下一个星期一显示输出 91. SELECTnext_day(sysdate,星期一) 92. FROMdual; 93. -18、查询一个月的最后一天显示输出 94. SELECTlast_day(sysdate) 95. FROMdual; 96. 97. -19、查询hr下employees表中入职时间在下半个月的员工 98. SELECT* 99. FROMemployees 100. WHEREto_char(hire_date,DD)15; 101. 102. -20、查询hr下employees表中上半年入职的员工 103. SELECT* 104. FROMemployees 105. WHEREto_char(hire_date,MM)=06; 106. 107. 108. /* 109. 21、将数字825398374.3762格式化成字符串后输出 110. 22、字符串变数字RMB825,398,374.38 111. 23、查询hr下employees表将员工薪水以$999,999,999.00格式显示 112. 24、第一个参数是null返回第三个参数,否则返回第二个参数 113. SELECTnvl2(234,42,142)FROMdual 114. 25、两个参数相同返回null,否则返回第一个参数 115. SELECTnullif(abc,abc)FROMdual 116. */ 117. -21、将数字825398374.3762格式化成字符串后输出 118. SELECTto_char(825398374.3762) 119. fromdual; 120. 121. -22、字符串变数字RMB825,398,374.38 122. -?没有写出来 123. 124. -23、查询hr下employees表将员工薪水以$999,999,999.00格式显示 125. SELECTto_char(salary,$999,999,999.00) 126. FROMemployees; 127. 128. -24、第一个参数是null返回第三个参数,否则返回第二个参数 129. SELECTnvl2(commission_pct,commission_pct,0) 130. FROMemployees; 131. 132. -25、两个参数相同返回null,否则返回第一个参数 133. SELECTnullif(aaa,aaa) 134. FROMdual; 135. 136. SELECTnullif(aaa,bbb) 137. FROMdual; 138. 139. /* 140. 26、查询hr下employees表中frist_name,last_name长度相同的员工记录 141. 27、查询hr下employees表中first_name,last_name首字母相同的员工记录 142. 29、employees表中如果员工职位是IT_PROG加薪10%,如果员工职位是ST_CLEAK加薪15%,如果是SA_REP加薪20%. 143. 30、查询hr下employees表中每月支出工资总额(多行函数不能和其他字段一起查询) 144. */ 145. 146. -26、查询hr下employees表中frist_name,last_name长度相同的员工记录 147. SELECT* 148. FROMemployees 149. WHERElength(first_name)=length(last_name); 150. 151. -27、查询hr下employees表中first_name,last_name首字母相同的员工记录 152. SELECT* 153. FROMEMPLOYEES 154. WHEREsubstr(first_name,1,1)=substr(last_name,1,1); 155. 156. -29、employees表中如果员工职位是IT_PROG加薪10%,如果员工职位是ST_CLEAK加薪15%,如果是SA_REP加薪20%. 157. SELECTfirst_name,job_id,salary,casejob_idwhenIT_PROGth

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论