我搜索了但我发现的所有内容要么没有回答问题,要么我真的不明白
我正在创建一个表,并且我想在某些列上放置约束,如果另一列具有特定值,则这些列将要求它不为空。我现在拥有的是:
ColumnA NOT NULL CHECK (ColumnB = 8802 or ColumnB = 8804),
Run Code Online (Sandbox Code Playgroud)
基本上,如果ColumnB等于这两个值中的ColumnA任何一个,则必须有一个值,并且在其余时间可以为空。
也许:
ALTER TABLE ADD CONSTRAINT A_B_Check
CHECK (
ColumnA IS NOT NULL
OR (ColumnA IS NULL AND (ColumnB <> 8802 AND ColumnB <> 8804))
);
Run Code Online (Sandbox Code Playgroud)