开发者社区> 问答> 正文

列具有特定值时WHERE的子句条件

我在查询的WHERE子句中遇到问题:

SELECT
p.productId,
p.productType,
p.quantity_for_customers,
p.quantity_for_sellers,

FROM dbb.Products


WHERE (p.productType IS NOT NULL 
      OR 
      (p.productType = 1 AND p.quantity_for_customers > 0 
          AND p.quantity_for_sellers > 0)
      )

我想选择产品信息,如果产品的类型= 1,那么两个数量(客户和卖家)都大于零,那我该怎么选择该产品。

我写的WHERE子句不起作用,因为某些产品的类型= 1,但其数量一个等于0,它们仍显示在查询结果中。

请问WHERE子句怎么了?

展开
收起
心有灵_夕 2019-11-29 21:27:36 1058 0
1 条回答
写回答
取消 提交回答
  • 它们出现,因为procutType不为null。与OR结合使用时,会显示符合条件productType IS NOT NULL的每个条目。

    要实现您想要的功能,请尝试以下操作:

    WHERE p.productType IS NOT NULL AND
      (p.productType <> 1
      OR 
      (p.productType = 1 AND p.quantity_for_customers > 0 
          AND p.quantity_for_sellers > 0)
      )
    
    2019-11-29 21:29:32
    赞同 展开评论 打赏
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载