(七)修改上一条SQL语句,NULL值的滤空函数nvl
修改上一条SQL语句
1.用c命令来修改(c 即 change )
默认,光标闪烁位置指向上一条SQL语句的第一行。输入二则定位到第二行。
c /错误的关键字/正确的关键字
SQL> select empno,ename,sal,sal*12 form emp; select empno,ename,sal,sal*12 form emp * 第 1 行出现错误: ORA-00923: 未找到要求的 FROM 关键字 SQL> c form/from; SP2-0023: 未找到字符串 SQL> c /form/from; 1* select empno,ename,sal,sal*12 from emp SQL> / EMPNO ENAME SAL SAL*12 ---------- ---------- ---------- ---------- 7369 SMITH 800 9600 7499 ALLEN 1600 19200 7521 WARD 1250 15000 7566 JONES 2975 35700 7654 MARTIN 1250 15000 7698 BLAKE 2850 34200 7782 CLARK 2450 29400 7788 SCOTT 3000 36000 7839 KING 5000 60000 7844 TURNER 1500 18000 7876 ADAMS 1100 13200 EMPNO ENAME SAL SAL*12 ---------- ---------- ---------- ---------- 7900 JAMES 950 11400 7902 FORD 3000 36000 7934 MILLER 1300 15600 已选择14行。 SQL>
2.使用ed命令来修改 edit
ed 弹出系统默认的文本编辑器 (如:记事本)
修改,保存,退出,执行“ / ”
NULL 值问题
1.包含null值的表达式都为空
2.null != null;
滤空函数nvl(a,b),如果 a 为 null 则返回 b
SQL> select ename,sal+comm from emp; ENAME SAL+COMM ---------- ---------- SMITH ALLEN 1900 WARD 1750 JONES MARTIN 2650 BLAKE CLARK SCOTT KING TURNER 1500 ADAMS JAMES FORD MILLER 已选择14行。 SQL> ed 已写入 file afiedt.buf 1* select ename,sal+nvl(comm,0) from emp SQL> / ENAME SAL+NVL(COMM,0) ---------- --------------- SMITH 800 ALLEN 1900 WARD 1750 JONES 2975 MARTIN 2650 BLAKE 2850 CLARK 2450 SCOTT 3000 KING 5000 TURNER 1500 ADAMS 1100 JAMES 950 FORD 3000 MILLER 1300 已选择14行。