(七)修改上一条SQL语句,NULL值的滤空函数nvl

本文介绍如何在SQL环境中使用c命令和ed命令修改上一条SQL语句,解决FROM关键字错误,并演示如何处理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行。

 

转载于:https://www.cnblogs.com/xiangtingshen/p/10706280.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值