加入收藏 | 设为首页 | 会员中心 | 我要投稿 湖南网 (https://www.hunanwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长百科 > 正文

Oracle SQL – 可以在搜查束缚中行使CASE来确定命据属性吗?

发布时间:2021-01-16 18:32:14 所属栏目:站长百科 来源:网络整理
导读:我正在行使Oracle 10g,我想将束缚应用于一个表,个中为一列输入的值确定另一列是IS NULL照旧IS NOT NULL. Column1只能包括1或0; Column2是VARCHAR2(255). 我知道以下事变: CONSTRAINT ck_1 CHECK ((col1=1 AND col2 IS NOT NULL) OR (col1=0 AND col2 IS NUL

我正在行使Oracle 10g,我想将束缚应用于一个表,个中为一列输入的值确定另一列是IS NULL照旧IS NOT NULL. Column1只能包括1或0; Column2是VARCHAR2(255).

我知道以下事变:

CONSTRAINT ck_1 CHECK ((col1=1 AND col2 IS NOT NULL) OR (col1=0 AND col2 IS NULL));

可是,我想知道是否可以行使CASE来执行此束缚并在col2上配置属性NOT NULL,可能CASE是否只能用于界说值?大概像这样的事变:

CONSTRAINT ck_1 CHECK (CASE WHEN col1=1 THEN col2 IS NOT NULL ELSE col2 IS NULL END);

办理要领

因为CASE表达式必需返回一个值,而且搜查束缚是布尔值,因此您必需将功效与某些内容举办较量,譬喻:

CONSTRAINT ck_1 CHECK (CASE WHEN col2 IS NOT NULL THEN 1 ELSE 0 END = col1);

(编辑:湖南网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读