AI智能
改变未来

Oracle笔记(2)

1.查询emp表中的所有信息,日期类型数据转换为”xxxx年xx月xx日”型。
select empno,ename,job,mgr,to_char(hiredate,‘yyyy\”年\”mm\”月\”dd\”日\”’) as 日期,sal,comm,deptno from emp;

2.查询所有员工信息并按照部门编号和工资进行排序
select * from emp order by deptno,sal ;

3.显示EMP表的员工姓名以及工资和奖金的和。
select ename,sal+nvl(comm,0) as 工资奖金和 from emp;

4.查询员工姓名和雇佣日期,并按雇佣日期排序,后雇佣的先显示。
select ename,hiredate from emp order by extract(year from hiredate),extract(month from hiredate),extract(day from hiredate)
5.按工资和入职月份的乘积排序(倒序)。Months_between返回两个日期之间的月份数
select * from emp order by sal*(Months_between(sysdate,hiredate)) desc;

6.假定当前的系统日期是2013年11月13日,显示部门10员工的雇佣天数。
select to_date(‘2013-11-13’,‘yyyy-mm-dd’)-hiredate as 雇佣天数 from emp where deptno = 10;

7.求出部门名称带字符‘S’的部门员工,工资合计,部门人数
select sum(sal) 工资合计, count(ename) 部门人数, emp.deptno
from emp
group by emp.deptno
having emp.deptno in (select dept.deptno from dept where dname like ‘%S%’);

8.去除“ HelloEpoint ”前后的空格;
select replace(’ HelloEpoint \’, ’ \’, ‘’);

9.去除“ HelloEpoint ”前后的空格;
select trim(’ HelloEpoint \’) from dual;

10.去除“ HelloEpoint ”前后的空格;
select replace(’ HelloEpoint \’, ’ \’, ‘’);

11.查询emp表中第3到第8行数据;
SELECT * from emp LIMIT 2,6;–从2开始偏移6个

12.mysql取年份
year(date)

13.substr函数格式 (俗称:字符截取函数)
  格式1: substr(string string, int a, int b);
  格式2:substr(string string, int a) ;
解析:
格式1:
1、string 需要截取的字符串
2、a 截取字符串的开始位置(注:当a等于0或1时,都是从第一位开始截取)
3、b 要截取的字符串的长度
格式2:
1、string 需要截取的字符串
2、a 可以理解为从第a个字符开始截取后面所有的字符串。

14.select to_char(sysdate,‘D’) from dual;//今天是这周的第几天
select to_char(sysdate,‘DD’) from dual;//今天是这个月的第几天
select to_char(sysdate,‘DDD’) from dual;//今天是今年的第几天

15.decode(条件,值1,返回值1,值2,返回值2,…值n,返回值n,缺省值)
实例:select id, username, age, decode(sex,0,‘男’,1,‘女’) from users;//如果sex是0则返回男,是1则返回女

赞(0) 打赏
未经允许不得转载:爱站程序员基地 » Oracle笔记(2)