Oracle 中的唯一约束允许一列为空
Unique Constraint Allow Null for One column in Oracle
我有以下 Table 结构
tbl_exam (Year,ExamCode,RollNo)
1). Table中的数据是:
(2017,1,NULL)
(2017,1,NULL)
(2017,1,1)
(2017,1,2)
允许以上值
2).
(2017,1,1)
(2017,1,1) **Not Allowed**
如何添加允许 RollNo 列为空值的唯一约束
编辑:需要复合键约束
已解决:
感谢 大卫·奥尔德里奇
create unique index exam_uidx on tbl_exam
(
Nvl2(RollNo, Year , null),
Nvl2(RollNo, Exam_Code, null),
RollNo
)
我希望您可以通过对以下内容设置唯一约束来做到这一点:
(
Nvl2(RollNo, Year , null),
Nvl2(RollNo, ExamCode, null),
RollNo
)
未测试
我有以下 Table 结构
tbl_exam (Year,ExamCode,RollNo)
1). Table中的数据是:
(2017,1,NULL)
(2017,1,NULL)
(2017,1,1)
(2017,1,2)
允许以上值
2).
(2017,1,1)
(2017,1,1) **Not Allowed**
如何添加允许 RollNo 列为空值的唯一约束
编辑:需要复合键约束
已解决: 感谢 大卫·奥尔德里奇
create unique index exam_uidx on tbl_exam
(
Nvl2(RollNo, Year , null),
Nvl2(RollNo, Exam_Code, null),
RollNo
)
我希望您可以通过对以下内容设置唯一约束来做到这一点:
(
Nvl2(RollNo, Year , null),
Nvl2(RollNo, ExamCode, null),
RollNo
)
未测试