SELECT * FROM emp;
SELECT ename AS 员工姓名
FROM emp
WHERE INSTR( UPPER(ename), 'A') > 0;
SELECT ename AS 员工姓名, LENGTH(ename) AS 姓名长度
FROM emp
WHERE deptno IN (10, 20)
AND hiredate > '1-5月-81'
AND INSTR(ename, 'A') > 0;
SELECT CONCAT( CONCAT( RPAD (empno, 10, '*'), RPAD (ename, 10, '*')), LPAD (sal, 10, '*')) AS 编号姓名工资
FROM emp;
SELECT ROUND (45.923, 2), ROUND (45.923, 0), ROUND (45.923, -1)
FROM DUAL;
SELECT TRUNC (45.923, 2), TRUNC (45.923, 0), TRUNC (45.923, -1)
FROM DUAL;
SELECT ROUND (100.456, 2), ROUND (100.456, 1), ROUND (100.456, 0)
FROM DUAL;
SELECT TRUNC (100.456, 2), TRUNC (100.456, 1), TRUNC (100.456, 0)
FROM DUAL;
SELECT ename 员工姓名, ROUND ((SYSDATE-hiredate)/7) 在职周数
FROM emp
WHERE deptno = 10;
SELECT ename 员工姓名, ROUND (SYSDATE-hiredate) 在职天数
FROM emp;
SELECT SYSDATE
FROM DUAL;
SELECT MONTHS_BETWEEN ('01-1月-01', hiredate) 工作月数, EXTRACT (MONTH FROM hiredate) 入职月份
FROM emp;
SELECT ename 员工姓名, hiredate 入职日期, ADD_MONTHS (hiredate, 6) 转正日期, NEXT_DAY (hiredate, '星期一') 入职日期后的第一个星期一, LAST_DAY (hiredate) 入职当月的最后一天
FROM emp
WHERE job != 'MANAGER';
SELECT ename 员工姓名, TO_CHAR (hiredate, 'MM/YY') 入职日期
FROM emp;
SELECT ename 员工姓名, TO_CHAR (hiredate, 'DD Month YYYY') 入职日期
FROM emp;
SELECT TO_CHAR (sal, '$99,999') 工资
FROM emp
WHERE ename = 'SCOTT';
SELECT TO_CHAR (SYSDATE, 'YYYY-MM-DD HH24:MI:SS') 系统当前时间
FROM DUAL;
SELECT ename 员工姓名, hiredate 入职日期, TO_CHAR (hiredate, 'DAY') 开始于星期几
FROM emp;
SELECT ename 员工姓名, sal 工资, TO_CHAR (sal, '$999,999.99') 格式化工资
FROM emp;
SELECT ROUND (SYSDATE - TO_DATE('2015-3月-18 13:13:13', 'YYYY-MONTH-DD HH24:MI:SS')) 距离系统时间多少天
FROM DUAL;
SELECT ename 员工姓名, sal 工资, comm 奖金, (sal*12) + NVL (comm, 0) 总工资
FROM emp;
SELECT ename 员工姓名, COALESCE (comm, 0) 奖金, deptno 部门编号 -- NVL (comm, 0)
FROM emp;
CASE expr
WHEN comparison_expr1 THEN return_expr1
[WHEN comparison_expr2 THEN return_expr2
WHEN comparison_exprn THEN return_exprn
ELSE else_expr]
END;
SELECT ename 员工姓名,
deptno 部门编号,
(CASE deptno
WHEN 10 THEN
'销售部'
WHEN 20 THEN
'技术部'
WHEN 30 THEN
'管理部'
ELSE
'无'
END) 部门名字
FROM emp;
SELECT ename 员工姓名, deptno 部门编号, DECODE (deptno, 10, '销售部', 20, '技术部', 30, '管理部', '无') 部门名字
FROM emp;
SELECT ename 员工姓名, NVL (TO_CHAR (mgr), '没有经理') 经理号
FROM emp
WHERE mgr IS NULL;
SELECT ROUND (MONTHS_BETWEEN (SYSDATE, TO_DATE('20001月01', 'YYYYMONTHDD'))) 距今多少月,
ROUND ((SYSDATE - TO_DATE('20001月01', 'YYYYMONTHDD'))/7) 距今多少周
FROM DUAL;
SELECT *
FROM emp
WHERE INSTR (UPPER (ename), 'A') = 3 -- 第三个字符是A
-- 3 使用trim函数将字符串'hello'、' Hello '、'bllb'、' hello '分别处理得到下列字符串ello、Hello、ll、hello
SELECT TRIM ('h' FROM 'hello'), TRIM (' ' FROM ' Hello '), TRIM (BOTH 'b' FROM 'bllb'), TRIM (' ' FROM ' hello ')
FROM DUAL;
SELECT TO_CHAR (sal, '999,999.99')||' RMB' 员工工资
FROM emp;
SELECT ename 员工姓名, NVL (TO_CHAR (mgr), 'No Manager') 经理编号
FROM emp;
SELECT TO_CHAR (hiredate, 'MM/YY')
FROM emp;
SELECT sal 工资,
(CASE
WHEN sal > 0 AND sal < 1000 THEN sal*0
WHEN sal >= 1000 AND sal < 2000 THEN sal*0.1
WHEN sal >= 2000 AND sal < 3000 THEN sal*0.15
WHEN sal >= 3000 THEN sal*0.2
ELSE 0
END) 应交税款
FROM emp;
SELECT ename 员工姓名, LPAD (TO_CHAR (sal), 15, '$') SALARY
FROM emp;