oracle_sql单行函数练习(含答案)

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

oracle_sql单行函数练习(含答案)

整理 2012-12-3

Oracle单行函数的实例练习,基于Oracle自带数据库,用户名分别为hr(主要)和scott。

基本上都做出来了,但还有一道关于人民币转数字的还没有做出来,有知道的留言下哦,

其他地方有错误的请指正。

Sql代码

1./*1、将字符串'abc' 以10位长度输出,不足10位用#补足(分别从左

边和右边补足)

2.2、将字符串' abc ewr 3245 4 '去除两头

空格输出

3.3、将字符串'abc 234 abc abc def abc' 中'abc' 替换

为'###' 输出

4.4、将数字7433453.52638263 四舍五入后输出

5.5、将数字743583.345234 中十位数之后数字全部忽略输出

6.*/

7.

8.--1、将字符串'abc' 以10位长度输出,不足10位用#补足(分别从左

边和右边补足)

9.SELECT lpad('abc',10,'#') FROM dual;

10.SELECT rpad('abc',10,'#') FROM dual;

11.--2、将字符串' abc ewr 3245 4 '去除两

头空格输出

12.SELECT trim(' abc ewr 3245 4 ') FR

OM dual;

13.--3、将字符串'abc 234 abc abc def abc' 中'abc' 替换

为'###' 输出

14.SELECT replace('abc 234 abc abc def abc','abc','###') FR

OM dual;

15.--4、将数字7433453.52638263 四舍五入后输出

16.SELECT ROUND(7433453.52638263) FROM dual;

17.--5、将数字743583.345234 中十位数之后数字全部忽略输出

18.SELECT round(743583.345234,-1) from DUAL;

19.

20./*

21.6、查询hr方案中employees表,将所有员工工资上涨11.173% 后,

四舍五入到十位输出

22.7、将当前系统时间格式化为

'YEAR MONTH DY DAY YYYY-MM-DD HH24:MI:SS'输出

23.8、查询hr方案中employees表,将入职时间格式化为

'YYYY-MM-DD HH24:MI:SS' 显示

24.9、将当前时间加一年后格式化输出显示

25.10、两个时间相减后输出

26.*/

27.

28.--6、查询hr方案中employees表,将所有员工工资上涨11.173% 后,

四舍五入到十位输出

29.SELECT round(salary*(1+0.11173),-1)

30.FROM employees;

31.

32.--7、将当前系统时间格式化为

'YEAR MONTH DY DAY YYYY-MM-DD HH24:MI:SS'输出

33.SELECT to_char(sysdate,'YEAR MONTH DY DAY YYYY-MM-DD HH24

:MI:SS')

34.FROM dual;

35.--8、查询hr方案中employees表,将入职时间格式化为

'YYYY-MM-DD HH24:MI:SS' 显示

36.SELECT to_char(hire_date,'YYYY-MM-DD HH24:MI:SS')

37.FROM employees;

38.--9、将当前时间加一年后格式化输出显示

39.SELECT to_char(add_months(sysdate,12),'YYYY-MM-DD')

40.from dual;

41.

42.--10、两个时间相减后输出

43.SELECT to_date(2011,'YYYY')-sysdate

44.FROM dual;

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.SELECT first_name

56.FROM employees

57.where months_between(sysdate,hire_date) > 10*12;

58.

59.--12、查询hr下employees表中2000年后入职的员工

60.SELECT *

61.FROM employees

62.where to_char(hire_date,'YYYY') >= '2000' ;

63.

64.--13、查询hr下employees表中所有98年3月入职的员工

65.--这里要注意用的是to_char 来进行日期比较

66.SELECT *

67.FROM employees

68.WHERE to_char(hire_date,'YYYY-MM') = '1998-03';

69.

70.--14、查询hr下employees表中所有在3月入职的人

71.SELECT *

72.FROM employees

73.WHERE to_char(hire_date,'MM') ='03';

74.

75.--15、查询当前时间距离'1998-8-2' 的月数

76.SELECT MONTHS_BETWEEN(sysdate,to_date('1998-8-2','YYYY-MM-DD')

)

77.FROM dual;

78.

79./*

80.16、将当前时间减12个月然后输出

81.17、查询下一个星期一显示输出

82.18、查询一个月的最后一天显示输出

83.19、查询hr下employees表中入职时间在下半个月的员工

84.20、查询hr下employees表中上半年入职的员工

85.*/

86.--16、将当前时间减12个月然后输出

87.SELECT add_months(sysdate,-12)

88.FROM dual;

89.

90.--17、查询下一个星期一显示输出

91.SELECT next_day(sysdate,'星期一')

92.FROM dual;

93.--18、查询一个月的最后一天显示输出

94.SELECT last_day(sysdate)

95.FROM dual;

96.

97.--19、查询hr下employees表中入职时间在下半个月的员工

98.SELECT *

99.FROM employees

相关文档
最新文档