NC多字段唯一索引

示例:
create unique index po_order_vdef6_index on po_order(NVL2 (NULLIF(nvl(dr,0),1),NULLIF(vdef6,'~'),null));

解析: dr=0 且 vdef6不等于~ 时 vdef6 不能重复
当 br=1 时,NULLIF(br,1) 则返回null值, 即NVL2(NULLIF(dr,1),dr,NULL), 返回的是null值,同理,另外两个NVL2的表达式也是返回null值,因此,三个字段都认为是null值,所以可以允许插入;

NULL指的是空值,或者非法值。
NVL (expr1, expr2)->expr1为NULL,返回expr2;不为NULL,返回expr1。注意两者的类型要一致
NVL2 (expr1, expr2, expr3) ->expr1不为NULL,返回expr2;为NULL,返回expr3。expr2和expr3类型不同的话,expr3会转换为expr2的类型
NULLIF (expr1, expr2) ->相等返回NULL,不等返回expr1

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1.简介 数据存储有哪些方式?电子表格,纸质文件,数据库。 那么究竟什么是关系型数据库? 目前对数据库的分类主要是...
    乔震阅读 5,872评论 0 2
  • 1.简介 数据存储有哪些方式?电子表格,纸质文件,数据库。 那么究竟什么是关系型数据库? 目前对数据库的分类主要是...
    A建飞_dedf阅读 3,880评论 0 0
  • SQL函数 SQL函数分类 SQL函数主要有两种,分为单行函数、多行函数单行函数:只对一行进行变换,每行返回一个结...
    MPPC阅读 3,895评论 0 7
  • Oracle-SQL 这是对Oracle-SQL知识点详细介绍的文章系列,其他文章如下: Oracle-SQL系列...
    GuaKin_Huang阅读 7,497评论 0 14
  • 1.基本SQL select语句1.1 sqlplus登陆1.2sqlplus 的基本操作1.3基本select语...
    木鱼_cc阅读 4,342评论 0 1

友情链接更多精彩内容