【问题标题】:sql select condition, if col1 empty check on col2sql 选择条件,如果 col1 为空,则检查 col2
【发布时间】:2018-01-11 15:20:56
【问题描述】:

如何在 SQL 中实现以下目标。 (我无法检查col1 是否为空,请检查col2 是否为"confirmed"

select data from table1 where col1 = "true" 或(如果col1 为空,请检查col2 = "confirmed")。

(检查col1col2 的值不同)

【问题讨论】:

  • Opps ... 我正在使用 sqlite。

标签: sql sqlite select ifnull


【解决方案1】:

假设 col2 不为空。如果可以是null,则展开条件(与上图类似)

where (col1 is not null and col1='true')
or (col1 is null and col2='confirmed')

【讨论】:

  • 感谢您的回答。但是,我用sqlite尝试过,它不起作用。它只需要第一个条件。输出只有 col1 不为空且等于 col1='true' 的所有数据。
  • 我的完整陈述如下: select name, date from table1 where (col1 is not null and lower(col1) = 'true') OR (col1is null and lower(col2) = 'confirmed' ) ;
  • 我刚从 SQL 文档中发现。 ............ IS 和 IS NOT 运算符的工作方式与 = 和 != 类似,除非其中一个或两个操作数为 NULL。在这种情况下,如果两个操作数都为 NULL,则 IS 运算符的计算结果为 1(真),而 IS NOT 运算符的计算结果为 0(假)。如果一个操作数为 NULL 而另一个不是,则 IS 运算符的计算结果为 0(假)并且 IS NOT 运算符为 1(真)。 IS 或 IS NOT 表达式不可能计算为 NULL。运算符 IS 和 IS NOT 与 = 具有相同的优先级。
  • 任何其他选项!!
猜你喜欢
  • 1970-01-01
  • 2019-05-22
  • 2013-09-17
  • 2016-12-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-09-12
相关资源
最近更新 更多