通过查询获得某个字段的合计值,如果这个值位null将给出一个预设的默认值 select nvl(ob.bookingvalue,0) bookingvalue from blis_order o, blis_orderbooking ob where o.orderid=ob.orderid and o.orderid =125034 and ob.bookingtypeid = 215 and ob.status = 'Active'这里关心nvl的用法,nvl(arg,value)代表如果前面的arg的值为null那么返回的值为后面的value SQL语法是数据库操作的核心,以下是对给定文件中提到的SQL知识点的详细解释: 1. **NVL函数**:在SQL中,`NVL`函数用于处理`NULL`值。如示例所示,`NVL(ob.bookingvalue, 0)`会检查`ob.bookingvalue`是否为`NULL`。如果`bookingvalue`为空,`NVL`函数会返回第二个参数的值,即0。这在计算总和或需要非空值时非常有用。 2. **条件查询**:在`WHERE`子句中使用`IN`和`NOT IN`可以定义特定字段应满足的值。例如,`o.ordertypeid NOT IN (4, 8, 10, 11)`表示`orderid`不在给定的列表中,而`o.status IN ('New', 'Accepted', ...) `则表示`status`字段必须是这些状态之一。 3. **去除重复值**:`DISTINCT`关键字用于获取唯一不同的值。例如,`SELECT DISTINCT op.name, op.`会去除`name`和``字段的重复值。 4. **非空条件**:`IS NOT NULL`用于过滤掉`NULL`值。在例子中,`os.orderofferid IS NOT NULL`确保只选择`orderofferid`有值的记录。 5. **字段别名**:`AS`关键字用于给字段起别名。例如,`SELECT bsf.keyid AS subcode`,`keyid`字段显示为`subcode`。 6. **事务控制**:`ROLLBACK`和`COMMIT`是数据库事务管理的关键命令。`ROLLBACK`撤销所有未提交的更改,而`COMMIT`则将所有更改永久保存到数据库中。 7. **Oracle的DUAL表**:在Oracle数据库中,`DUAL`是一个特殊的表,通常用于测试和单行查询。例如,`SELECT sysdate FROM dual`获取当前系统日期。 8. **主键(PK)**:在数据库中,主键(PK)是一个或一组列,其值唯一标识每行。它们通常是不可变的,并用于确保数据完整性。 9. **排序**:`ORDER BY`子句用于对结果集进行排序。`DESC`表示降序排列,如`ORDER BY bsf.ordertypeid DESC`将`ordertypeid`按降序排列。 10. **插入记录**:`INSERT INTO`语句用于向表中添加新记录。例如,`VALUES`后面跟着一系列值,其中`seq_bstoffermigplan.nextval`是一个序列,它自动提供唯一的ID。 11. **更新记录**:`UPDATE`语句用于修改已存在的记录。它指定要更新的表、设置新的字段值,并通常包含`WHERE`子句来指定要修改的特定记录。 以上都是SQL语言的基本组成部分,熟练掌握这些概念和操作对于进行有效的数据库查询和管理至关重要。在实际应用中,可能还需要结合其他高级特性,如联接(JOINs)、子查询、聚合函数(GROUP BY)等,以实现更复杂的查询逻辑。
- 粉丝: 0
- 资源: 10
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- Veriloh-HDL实现的通用串口模块,UART通信,支持校验,波特率参数化可设置
- 【java毕业设计】springbootJava Move体育商城(springboot+vue+mysql+说明文档).zip
- 【java毕业设计】springboot乡村生活垃圾(springboot+vue+mysql+说明文档).zip
- ditto安装包+pixpin安装包+notepad++.rar
- VMware虚拟机管理器安装包(亲测可用)
- AXI-VFIFO,VerilgHdl实现
- 003.获取鼠标坐标位置
- apache-maven-3.9.9-bin
- 002改变鼠标光标样式
- rustdesk 苹果intel客户端