【问题标题】:Checking if a column has a certain value, then restrict another by a list检查一列是否具有特定值,然后通过列表限制另一列
【发布时间】:2017-07-26 22:11:22
【问题描述】:

我想知道是否有任何方法可以检查一列是否有值,如果值为 XXXXX,则另一列必须在 (A,B,C) 的列表中。 类似:

CREATE TABLE test (a CHAR(60),b CHAR(60),Check (IF a == 'test' THEN b in ('a','b','c')));

【问题讨论】:

    标签: sqlite boolean-logic implication


    【解决方案1】:

    换句话说,在test 行中,b 必须在列表中,而在非test 行中,b 可以是任何东西。

    所以为了检查成功,b 必须在列表中,或者该行不能是 test 行:

    CHECK (a <> 'test' OR b IN ('a', 'b', 'c'))
    

    在数学上,a → b¬a ∨ b 相同。

    【讨论】:

      猜你喜欢
      • 2023-03-18
      • 2021-11-26
      • 2016-03-05
      • 1970-01-01
      • 1970-01-01
      • 2020-05-23
      • 2020-01-08
      • 2019-12-11
      • 2022-12-12
      相关资源
      最近更新 更多