使用YYYY-MM-DD显示格式显示雇员雇佣日期
SELECT ename,TO_CHAR(hiredate,’YYYY-MM-DD’) FROM emp;
取消重复行
某些情况下可能会显示完全相同的数据结果,使用DISTINCT关键字取消相同的结果
显示所有部门号及岗位(取消重复行)
SELECT DISTINCT deptno,job FROM emp处理NULL
一、使用NVL函数处理NULL值
NVL函数用于将NULL转变为实际值,其语法格式为NVL(expr1,expr2)。如果expr1是null,则返回expr2;如果expr1不是null,则返回expr1
另:使用AS别名时 必须要用双引号引住
SELECT ename,sal,comm,sal+nvl(comm,0) AS “月收入” FROM emp;二、使用NVL2函数处理NULL值
NVL2是oracle9i新增加的函数。
语法结构:NVL2(expr1,expr2,expr3)。如果exp1不是null,则返回expr2;如果expr1是null,则返回expr3。
注意:expr1可以是任意的数据类型,而expr2和expr3可以是除LONG之外的任何数据类型。但是expr2,expr3的数据类型必须要与expr1的数据类型匹配。
SELECT ename,nvl2(comm,sal+comm,sal) AS “月收入” FROM emp;连接字符串
为了显示更有意义的查询结果,有时需要将多个字符串连接起来,连接字符串是使用“||”操作符来完成的。当连接字符串时,如果在字符串中要加入数字值,那么在“||”后可以直接指定数字;如果在字符串中要加入字符和日期值,则必须要用单引号引住。
SELECT ename||’ is a ‘|| job AS “Employee Detail” FROM emp;LIKE操作符
“%”用于表示0个或者多个字符,
“_”用于表示单个字符
注:如果要将通配符“%”和“_”作为字符值使用,那么需要在ESCAPE之后使用转义符。
例:显示首字符为S的所有雇员名及其工资
SELECT ename,sal FROM emp WHERE ename LIKE ‘S%’;
例:显示第三个字符为大写A的所有雇员名及其工资
SELECT ename,sal FROM emp WHERE ename LIKE ‘__A%’;使用ORDER BY子句
在执行查询操作时,默认情况下会按照数据插入的先后顺序来显示行数据。
数据排序使用ORDER BY子句来完成。
1.升序排序 ASC
SELECT ename,sal FROM emp WHERE deptno = 30 ORDER BY sal;
注意:当执行升序排序时,如果被排序列包含NULL值,那么NULL会显示在最后面。
2.降序排序 DESC
SELECT ename,sal FROM emp WHERE deptno = 30 ORDER BY sal DESC;
3.使用多列排序
ORDER BY可以基于多个列或多个表达式进行排序。
排序规则:首先按照第一个列或者表达式进行排序,当第一个列或表达存在相同数据时,然后以第二个列或表达式进行排序。
**SELECT ename,sal,comm FROM emp WHERE deptno = 30 ORDER BY
sal ASC,comm DESC;**
4.使用非选择列表进行排序
当使用ORDER BY子句执行排序操作时,多数情况下选择列表都会包含被排序列。但是在实际情况下,选择列表可以不包含排序列。
SELECT ename FROM emp ORDER BY sal DESC;
5.使用列别名排序
如果在WHERE子句中为列或表达式定义了,那么当执行排序操作时,既可以使用列或表达式进行排序,也可使用列别名进行排序。
**SLECT ename,sal*12 AS “全年工作” FROM emp
WHERE deptno = 30 ORDER BY “全年工作” DESC;**
6.使用列位置编号排序
当执行排序操作时,不仅可以指定列名、列别名进行排序,也可以按照列或表达式在选择列表中的位置进行排序。如果列名或表达式名称很长,那么使用列位置排序可以缩短排序语句的长度。另外使用UNION,UNION ALL,INTERSECT,MINUS等集合操作符合并查询结果时,如果选择列表中的列名不同,并且希望进行排序,那么必须使用列位置。
例:以全年工资进行降序排序
**SELECT ename,sal*12 “全年工资” FROM emp
WHERE deptno = 20 ORDER BY 2 DESC**
ORACLE学习-基本查询
最新推荐文章于 2022-04-22 14:02:28 发布