【问题标题】:SQLLite SQL statement to find first non-zero of multiple columnsSQLite SQL 语句查找多列的第一个非零
【发布时间】:2016-03-02 07:30:09
【问题描述】:

我在一个表中有 2 行。每行包含一个主键和 5 个附加列,其值可能是 1 或 0。

例如,其中一列是“TermsAccepted”,另一列是“CopyrightAcknowledged”

第 1 行的“接受的条款”可能是 0 或 1,第 2 行的“接受的条款”也可能是 0 或 1。

我想知道是否至少有一行的每列包含 1。我是否必须使用 5 个子查询来执行此操作(我只想返回一行,告诉我是否有任何列中有 1)。对我来说,有多少有 1 并不重要,只要至少有一列有。

希望这是有道理的。我怎么能写一个查询来做到这一点?我正在使用 SQL Lite。我有点卡住了。非常感谢!

注意:我可以只返回两条记录,然后使用 Swift(我正在使用的编程语言)解析每一行中的每一列并查找 0 或 1,但我希望有所收获如果可能,在 SQL 中使其更优雅。

【问题讨论】:

  • 你试过 MySQL 的 NULLIF 吗? dev.mysql.com/doc/refman/5.7/en/…
  • 嗯,不,我没有,也没有想到这一点 - 现在看.. 除非你有一个查询的想法
  • 看看这里,如果我理解正确的话,它应该符合您的需求stackoverflow.com/questions/19282957/…
  • 啊,我正在使用似乎没有这个的 sqlite。有一个 min 函数,但不确定这是否是我需要的。想法?

标签: ios sql sqlite


【解决方案1】:

我认为这应该可行,但如果有人能确认那将是很棒的,谢谢!

SELECT 
        max(TermsAccepted), 
        max(CopyrightAcknowledged), 
        max(LoggedIn), 
        max(LockedOut), 
        max(AccountCopied)
FROM MyTable

【讨论】:

  • 在您确认它确实解决了您的问题之前,您不应发布答案。
  • 这解决了我的问题。当我被允许时,我会将其标记为已回答。
猜你喜欢
  • 2015-08-30
  • 2011-01-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-03-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多