检查所有三列是不是不为空或为空

Posted

技术标签:

【中文标题】检查所有三列是不是不为空或为空【英文标题】:Check if all three columns are either not null or null检查所有三列是否不为空或为空 【发布时间】:2015-04-24 11:34:19 【问题描述】:

我有一个有 4 列的表格:

create table dbo.Table ( 
  Id int not null,
  A int null,
  B int null,   
  C nvarchar (4000) null
)

如何确保ABC 都是三个null 或三个not null

【问题讨论】:

【参考方案1】:

你可以设置一个check constraint:

constraint [check_abc] check ( ([A] is null and [B] is null and [C] is null) or
                               ([A] is not null and [B] is not null and [C] is not null) )

【讨论】:

【参考方案2】:

您还可以考虑将这些相关列分解到第二个表中,在该表中声明它们为not null,并仅在它们适用的地方插入一行。

create table dbo.Table1( 
  Id int not null primary key
)


create table dbo.Table2( 
  Id int not null primary key references Table1,
  A int not null,
  B int not null,   
  C nvarchar (4000) not null
)

【讨论】:

以上是关于检查所有三列是不是不为空或为空的主要内容,如果未能解决你的问题,请参考以下文章

检查字符串是不是为空或为空的最简单方法

如何在 iOS 中检查 NSArray 是不是为空或为空?

选择 mongoid 中不为空或为空的位置

sql 检查字符串为空或为空

Oracle/SQL - 在另一个表中查找或为空或可能不存在或为空的记录

如何获取 SQL 中的第一个非 NULL 值?