欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Oracle - Select语句

程序员文章站 2022-11-23 18:59:35
Oracle - Select语句一、单引号和双引号、||双引号:处理别名单引号:处理字符串拼接||:连结操作符select first_name||last_name||'的工资是'||salary "full name" from employees;二、空值的使用 null包括空值的任何算术表达式都等于空select salary,commission_pct,salary*(1+commission_pct) from employees;错误结果:没有提成比例的...

Oracle - Select语句

一、单引号和双引号、||

  • 双引号:处理别名
  • 单引号:处理字符串拼接
  • ||:连结操作符
select first_name||last_name||'的工资是'||salary "full name" from employees;

Oracle - Select语句

二、空值的使用 null

  • 包括空值的任何算术表达式都等于空
select salary,commission_pct,salary*(1+commission_pct) from employees;

Oracle - Select语句
错误结果:没有提成比例的员工就没有工资

  • 解决方案一:先把commission_pct is null设置为0
update employees set commission_pct=0 where commission_pct is null;
select salary,commission_pct,salary*(1+commission_pct) from employees;

Oracle - Select语句

  • 解决方案二:nvl函数

三、包括空值的连接表达式相当于与空字符串连接(原来的字符串)

  • ‘string’||xxx (字段为null) => ‘string’
select first_name||last_name||email from employees;

Oracle - Select语句

四、去除重复字段

  • 使用DISTINCT字段名可从查询结果中清除重复字段(DISTINCT的作用范围是后面所有字段的组合)
SELECT DISTINCT department_id, job_id FROM employees;

五、行不重复(判断有全部列是一样的数据)

  • 使用DISTINCT关键字可从查询结果中清除重复行
SELECT DISTINCT * FROM employees;

六、查询不同表的数据组合在一起

  • union all:不去掉重复的记录,性能高
  • union:要去掉重复的记录
select first_name||last_name from employees union all select department_name from departments;

七、模糊查询 Like

  • % :可表示零或多个字符
  • _ :可表示一个字符
  • 如果要查询包含查询关键字的字符串需要进行转义
select * from feng  where name like '%\%f%' escape '\';    -- 查询%f
select * from feng  where name like '%\%f\_%' escape '\';  -- 查询%f_

八、优先级规则

Oracle - Select语句

九、多字段排序

select * from employees order by salary desc,EMPLOYEE_ID desc;

本文地址:https://blog.csdn.net/qq_45988641/article/details/108996047