oracle 查询数据转整形,Oracle数据库的查询、函数及其转换

Oracle数据库的查询、函数、函数转换

###1、 基本查询 ###

select 列名1,列名2… from 表名web

1.请查询出s_emp表中全部的员工信息:sql

select * from s_emp;

2.请查询出s_emp表中全部的员工的部门ID,工资:数据库

select DEPT_ID from s_emp;

3.请查询出s_emp表中全部的员工的年薪:svg

select salary+COMMISSION_PCT/100*salary from s_emp;

4.请查询出s_emp表中全部的员工的姓名:

列名不用可’’ 字符内容要加’ ',在sql语句中字符串用 ’ '引号函数

select FIRST_NAME||' '||LAST_NAME from s_emp;

select FIRST_NAME||' '||LAST_NAME as 姓名 from s_emp;

5.请查询出s_emp表中全部的员工的工资:code

select salary from s_emp;

6.请查询出s_dept表的部门名称orm

select NAME from s_dept;

DISTINCT 用来去除重复项xml

select DISTINCT name from s_dept;

7.请查询出s_emp表中全部的员工的部门ID及职称:排序

select DEPT_ID,TITLE from s_emp;

8.查询s_emp表要求输出员工姓名(firs_name、last_name)和实际工资(基本工资+提成)ci

select FIRST_NAME||LAST_NAME,nvl(COMMISSION_PCT/100,0)*salary+salary from s_emp;

9.请查询出s_emp表中dept_id为41的员工信息 而且 工资大于1000

select 列名1,列名2

from 表名

where 条件

select *

from s_emp

where DEPT_ID=41 and salary>1000;

10.请查询出s_emp表中dept_id为41的员工信息 或者 工资大于1000

select *

from s_emp

where DEPT_ID=41 or salary>1000;

11.请查询出s_emp表中last_name为Smith的员工的信息:

select *

from s_emp

where last_name = 'Smith';

12.请查询出s_emp表中部门ID为50而且工资大于1500的员工的信息:

select *

from s_emp

where DEPT_ID=50 and salary>1500;

13.请查询出s_emp表中工资在1500到2000之间的员工信息:

方式1

select *

from s_emp

where salary>1500 and salary<2000;

方式2

select *

from s_emp

where salary between 1500 and 2000;

14查询出s_dept表中region_id为1,3的部门信息:

select *

from s_dept

where REGION_ID=1 or REGION_ID=3;

select *

from s_dept

where REGION_ID in(1,3);

15.请查询出s_emp表中姓中含有字母a的员工信息:

–%表示能够有,能够没有,有能够有多个

select *

from s_emp

where LAST_NAME like '%a%';

16.请查询出s_emp表姓中第二个字母为a的员工信息:

– _表示必定有,只能有一位

select *

from s_emp

where LAST_NAME like '_a%';

17.请查询出当前用户下全部以‘s_’开头的表:

select *

from user_tables

where table_name like 's\_%';

18.查询出s_emp表中非销售职位的员工信息:

select *

from s_emp

where COMMISSION_PCT is null;

19.查询出s_emp表中销售职位的员工信息:

select *

from s_emp

where COMMISSION_PCT is not null;

20.order by 列名 用来完成指定列的排序, 默认升序ASC ,desc表示降序 ,order by 子句通常放在最后

select *

from s_emp

where SALARY>1000

order by salary desc;

2、字符函数

1.LOWER 将字符串转换成小写

select lower('WERT') from dual;

2.UPPER 将字符串变为大写

select upper('weRt') from dual;

3.INITCAP 将字符串的第一个字母变为大写,同时后面的转化为小写

select initcap('weRT') from dual;

3、字符串操做函数

1.CONCAT 拼接两个字符串,与 || 相同

select concat('ac','bd') from dual;

2.SUBSTR(‘String’,1,3) 取字符串的子串,下标从1开始

select substr('qwert',1,3) from dual;

3.LENGTH以字符给出字符串的长度 给出字符串的长度

select length('asdfghj') from dual;

4、数字函数

1.ROUND(value,precision) 按precision 精度4舍5入

select round(55.55,1) from dual;--precision不赋值,默认精度为0

2.TRUNC(value,precision) 按precision 截取value

SELECT TRUNC (124.16666, -1) FROM dual; --120

5、日期函数

1.获取当前系统日期

select sysdate from dual;--格式:07-11月-19

2.将系统当前日期改成指定日期

select To_date('07-10月-19') from dual;

3.MONTHS_BETWEEN(date2,date1) 给出 Date2 - date1的月数

select months_between('01-6月-95','11-1月-94')

from s_emp;

4.NEXT_DAY ( date,numbe) 给出日期date以后下周第number天的日期

select next_day(date,2) from dual;

6、转换函数

1.to_char()将日期转化为字符串

select to_char(sysdate,'yyyy/MM/dd hh:mm:ss') from dual; --2019/11/07 06:11:24

select to_char(123123,'L999,999,999') from dual; -- ¥123,123

select *

from s_emp

where to_char(START_DATE,'MM')='02';--开始日期是2月份的员工信息

2.to_number(‘String’)字符串转到数字

to_number(varchar2 or char,’format model’)

3.to_date(‘String’)字符串转到日期

select TO_DATE('2019-11-7','yyyy-mm-dd') from dual;

7、转换函数的嵌套

查询员工表中manager_id为空的员工查询出来,并将空列的值置为“No Manager”:

select last_name,

nvl(TO_CHAR(manager_id),'No Manager')

froms_emp

wheremanager_id is null;

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值