认识ORACLE中的dual表

首先要了解dual表是什么?

dual表是一个虚拟表,用来构成select的语法规则,oracle保证dual里面永远只有一条记录。常用在没有目标表的select语句块中。

常见用法

活用dual表的一些常见用法,可以使你的sql更容易形成预期的结构:

  1. 连接两个字符串
    在这里插入图片描述
    结果:
    在这里插入图片描述

  2. 使用nvl函数
    在这里插入图片描述
    结果:
    在这里插入图片描述
    这些用nvl判断过后的值可以直接用来给别的insert或者update操作;
    例如:
    INSERT INTO table1 ( a1, a2, a3, a4 )
    (SELECT nvl(‘b1’,‘test1’), nvl(‘b2’, ‘test2’), nvl(‘b3’, ‘test3’), nvl(‘b4’, ‘test4’) FROM dual);

    如果不了解nvl函数的用法,本文后面会有介绍。
    
  3. 查看当前用户
    select user from dual;

    这里的user是当前数据库的管理者。
    
  4. 查询当前日期时间
    在这里插入图片描述

    结果:
    在这里插入图片描述
    用来作简单的查询日期的操作;

  5. 进行计算操作
    select 5*6 from dual;
    select 9-3 from dual;

    sql中想要一些计算过后的值作为条件,就可以使用这种写法。
    

结论:从上面不难看出,dual表仅仅是一张虚拟表,用来构成select的语法规则,让sql能够正常执行。MySQL中也存在dual表,不过与ORACLE略有不同,这里不作详细介绍了,有兴趣的童鞋自己查看一下资料吧。


简单说一下NVL的用法:
1. NVL(’’,'test1 ’ )
NVL函数包含两个参数,如果第一个参数不为空或者null,则取第一个参数为值,否则取第二个参数为值;

2.NVL2(a1, a2, a3)

NVL2函数包含3个参数,如果第一个参数为空,则取第二个参数为值;如果第一个参数不为空,则取第三个参数为值;

3.NULLIF(a1, a2)

NULLIF函数包含2个参数,如果两个参数相等,则值为空(null);如果两个参数不相等,则取第一个参数为值。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值