oracle怎么查询入职 oracle查询一个月前入职的员工

oracle基础(第二节)

进行筛选的基本运算符号:

成都创新互联公司专注于企业营销型网站、网站重做改版、开江网站定制设计、自适应品牌网站建设、H5高端网站建设商城网站开发、集团公司官网建设、外贸营销网站建设、高端网站制作、响应式网页设计等建站业务,价格优惠性价比高,为开江等各大城市提供网站开发制作服务。

--查询月薪高于2000的员工的姓名和其月薪

--查询员工SMITH的员工信息

--关键字,表名,列名:大小写是不敏感(随意写)

--数据:大小写是敏感(不能随意写)

--查询不在20号部门工作的员工信息

--查询在20号部门工作并且月薪高于2000的员工信息

--查询职位是MANAGER或者月薪不低于3000的员工信息

--查询在10号部门工作月薪低于2000并且职位不是CLERK的员工信息

--查询在10号部门工作或(20号部门工作并且月薪不低于1500)的员工信息

--and的优先级要高于or 如果两者混合使用,需要注意优先级的问题

--加括号解决优先级问题

--SQL注入:利用了and的优先级高于or完成无密码进行登录

--SQL片段:通过在密码框中输入下方的SQL片段,更改了原有SQL语句的逻辑 ' or lname = 'admin --or前的逻辑:账号随意,密码为空 (登录失败) --or后的逻辑:用户名是admin的账号 (调取了admin的信息)

--1.查询10号部门职位是MANAGER的员工信息

--2.查询月薪低于2000或月薪高于3000的员工信息

--3.查询员工编号是7902的员工的所有下属的员工信息

--4.查询职位是CLERK或SALESMAN,并且月薪不低于1000的员工信息

--5.查询月收入不低于2500的员工信息

--6.查询30号部门年收入低于10000的员工信息

--7.查询员工SCOTT的月薪,奖金和月收入

--8.查询在1982年之前入职的员工信息(选做)

--相当于 = A and = B

--查询月薪在1000-2000区间的员工信息

--82年入职的员工

--like '特定字符'

-- 特定字符:由转义字符和搜索文本组成

-- 转义字符: %: 0-n个字符(任意长度的任意字符)

-- : 1个字符(1个长度的任意字符)

-- 比如 姓李 特定字符的写法 '李%'

-- 第二个字符是哈 特定字符的写法 ' 哈%'

--查询员工名字首字母是S的员工

--查询名字中倒数第2个字符是T的员工

--查询名字中包含字母T的员工

--查询名字中包含两个字母T的员工

--查询有两个连续的T

--查询名字中有%字符的员工

--声明标识字符

--相当于 = A or = B or = C...

--查询在10号部门或20号部门工作的员工

--查询在10号部门工作或月薪高于1200的员工

-- = null 无法筛选任何数据

-- is null 筛选null值

-- not between A and B 不在A与B区间内

-- not like '%A%' 名字里面没有A

-- not in(A,B,C) 不是A,B,C其中之一

-- is not null 不为null

--查询月薪不在1000-2000区间内并且名字中不包含字母T的员工信息

--order by 列名 或 列别名 或 表达式 或 列序号

--ASC 升序 由小到大

--DESC 降序 由大到小

--不写 默认是升序

--## 书写顺序:select...from...where...order by...

--## 执行顺序:from...where...select...order by...

--查询所有员工的信息,按照月薪的升序排序

--再按照月薪的降序排序

--利用表达式排序

--利用列别名进行排序

--利用列序号进行排序(第4列)

--排序的原则:

--1.数值按照数值的大小

--2.文本按照字典顺序

--3.日期按照未来的大

--#####order by 可以修饰多个列

-- ## order by A, B 先A的升序排序,如果A相同,再按B的升序排序

-- ## order by A desc, B desc 先A的降序排序,如果A相同,再按B的降序排序

--查询月薪高于1000的员工,按照部门的升序排序,再按照入职日期降序排序

--推荐在order by中使用列名或列别名

--1.查询名字中包含字母T,并且月薪在1500-3000之间的员工姓名和月薪

--2.查询公司的BOSS信息(mgr值为null的人)

--3.查询员工姓名,月薪,奖金,年收入,按照年收入降序进行排序显示

--4.查询职位中包含MAN并且有奖金收入(不是null不是0)的员工信息

--5.查询在在1981年期间入职的员工信息,并按照月薪降序排序

--6.查询员工信息,并按照职位升序,部门升序进行排序显示

--7.查询不在10号或20号部门工作,月薪低于1500的员工信息

--8.查询所有的职位名称,去掉重复后按照名称的升序排序显示

--9.查询员工SCOTT和ADAMS的员工信息

--10.查询年收入高于45000的员工信息,并按照年收入降序排序显示

oracle中查询所有员工入职以来的工作期限,并用“*年*月*日”的形式表示 怎样写sql语句呀

显示天数很简单,用当前日期减去入职日期即可,如下:

select empno,ename,sysdate-hiredate from emp;

显示年月日的话,得进行一系列函数转换,如下:

select empno,ename,

to_char(floor(to_number((sysdate-hiredate)/365)))||' years '||

to_char(ceil(months_between(sysdate,hiredate)-(floor(to_number((sysdate-hiredate)/365)))*12))||' months '

from emp

上面的sql会显示工作期限的年数和月数,我觉得没有必要再显示天数了,因为每个月的天数也不一致

oracle查询入职8个月员工

SELECT * FROM 表 WHERE MONTHS_BETWEEN(sysdate-入职日期)=8;

MONTHS_BETWEEN (x, y)用于计算x和y之间有几个月。如果x在日历中比y早,那么MONTHS_BETWEEN()就返回一个负数。

这个语句只支持入职日期那一列为Date类型,不然会出现错误。

不是DAE类型的话需要用to_date转换

例如

SELECT * FROM 表 WHERE MONTHS_BETWEEN(sysdate-to_date(入职日期,'mm'))=8

希望能帮到您!

oracle查询emp前一个月入职的员工

select ename,hiredate from emp where hiredate =to_date('1982/1/1','yyyy/mm/dd')

如果是要查询1982-1-1后入职的应该是:

select ename,hiredate from emp where hiredate to_date('1982/1/1','yyyy/mm/dd')


当前题目:oracle怎么查询入职 oracle查询一个月前入职的员工
网页地址:http://cdiso.cn/article/hggcgo.html

其他资讯