Oracle基礎——單行函數練習(二)

--1.查詢系統當前日期
select sysdate from dual;

--2.請查詢每個員工的名字、薪水和加薪15.5%之後的薪水(trunc取整)
Select last_name, salary, trunc(salary * 1.155) "new salary"
  from employees;

--3.顯示員工加薪15.5%(取整)之後員工的名字、原薪水和增加的薪水。(不允許做update操作,trunc取整)
Select last_name, salary, trunc(salary * 0.155) "new salary"
  from employees;

--4.顯示所有以’J’,‘A’,'M’打頭的員工的名字和名字長度,且按照名字排升序
select last_name, LENGTH(last_name)
  from employees
 where substr(last_name, 0, 1) in ('J', 'A', 'M')
 order by last_name asc;
--5.請查詢員工名和工作時間(換算成月並取整),並按工作時間排降序
Select last_name, trunc(months_between(sysdate, hire_date), 0)
  from employees
 order by trunc(months_between(sysdate, hire_date), 0) desc;
--6.請查詢員工的名字和薪水,並將薪水列變成15個字符長度,左邊填充“$”符號
select last_name, lpad(salary, 15, '$') from employees;
--7.請查詢部門id爲90的所有員工的名字和他們參加工作的星期數(保留2位小數,不需要四捨五入)使用
select last_name, trunc((sysdate - hire_date) / 7, 2)
  from employees
 where department_id = 90;
--8.創建報告,顯示員工名和獎金係數,如果獎金係數爲空,則顯示$無獎金
select last_name, decode(commission_pct, '', '無獎金', commission_pct)
  from employees;

--9.請使用case語句,查詢員工的job_id和級別.例如:
--job_id  Grade
--AD_PRES A
--ST_MAN  B
Select job_id,
       case job_id
       
         when 'AD_PRES' then
          'A'
       
         when 'ST_MAN' then
          'B'
       
         when 'IT_PROG' then
          'C'
       
         when 'SA_REP' then
          'D'
       
         when 'ST_CLERK' then
          'E'
       
         else
          '0'
       end "Grage"
  from employees;
--10.請使用decode語句,查詢員工的job_id和級別.例如:
select t.job_id,
       decode(t.job_id,
              'AD_PRES',
              'A',
              'ST_MAN',
              'B',
              'IT_PROG',
              'C',
              'SA_REP',
              'D',
              'ST_CLERK',
              'E',
              '0')
  from employees t;
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章