微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

或Oracle SQL中的简写?

我有一个查询,我需要检查20个不同的列为0值.

而不是做:

哪里
  预订<> 0
  或者ALLO<> 0
  要么 …

有更快的方法吗?
就像是:
哪里
  (BOOK,ALLO,…)<> 0

解决方法

虽然它不能在其他任何地方运行( MySQL,sql-Server,Postgres),并且它可能不是sql标准,但它适用于Oracle:

WHERE 0 <> ANY (BOOK,...)

SQL-Fiddle测试

还有另一种标准方法,适用于MysqL和Postgres,但不适用于Oracle:

WHERE (0,...) <> (BOOK,...)

另一种在Postgres和sql-Server 2012中工作的标准方法(使用表值构造函数):

WHERE 0 <> ANY (VALUES (BOOK),(ALLO),...)

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐