SQL-Server:将列定义为互斥
发布时间:2020-12-12 08:44:55 所属栏目:MsSql教程 来源:网络整理
导读:我想起了一个有趣的场景:SQL Server中是否有可能定义一个表,以便通过“标准手段”(约束等),我可以确保两个或更多列是相互排斥的? 我的意思是:我可以确保只有一列包含一个值吗? 解决方法 是的,可以使用CHECK约束: ALTER TABLE YourTableADD CONSTRAINT Co
我想起了一个有趣的场景:SQL Server中是否有可能定义一个表,以便通过“标准手段”(约束等),我可以确保两个或更多列是相互排斥的?
我的意思是:我可以确保只有一列包含一个值吗? 解决方法是的,可以使用CHECK约束:ALTER TABLE YourTable ADD CONSTRAINT ConstraintName CHECK (col1 is null or col2 is null) 根据您的评论,如果许多专栏是排他性的,您可以这样查看: case when col1 is null then 0 else 1 end + case when col2 is null then 0 else 1 end + case when col3 is null then 0 else 1 end + case when col4 is null then 0 else 1 end = 1 这说明四列之一必须包含一个值.如果它们都可以为NULL,只需检查< = 1. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |